gpt4 book ai didi

python - Pandas groupby : Nested loop fails with key error

转载 作者:行者123 更新时间:2023-12-01 06:21:45 24 4
gpt4 key购买 nike

我有包含以下测试内容的 CSV 文件:

Name;N_D;mu;set
A;10;20;0
B;20;30;0
C;30;40;0
x;5;15;1
y;15;25;1
z;25;35;1

我正在使用 pandas 读取文件,对数据进行分组,然后迭代数据。在每个组中,我想迭代数据集的行:

import pandas as pd
df = pd.read_csv("samples_test.csv", delimiter=";", header=0)

groups = df.groupby("set")
for name, group in groups:
somestuff = [group["N_D"], group["mu"], name]

for i, txt in enumerate(group["Name"]):
print(txt, group["Name"][i])

代码在第二组的第一个元素处的 print(txt, group["Name"][i]) 行上失败,并出现键错误。我不明白,为什么...

最佳答案

您的代码失败,因为系列索引与每个循环的枚举器索引不匹配,因此无法匹配过滤键,(注意:也使用 .loc[] 或 .iloc[] 并避免 chained indexing 组[“名称”][i])

groups = df.groupby("set")
for name, group in groups:
somestuff = [group["N_D"], group["mu"], name]

for i, txt in enumerate(group["Name"]):
print(i,group["Name"])
<小时/>
0 0    A
1 B
2 C
Name: Name, dtype: object
1 0 A
1 B
2 C
.......
....

您的代码应使用 .iloc[] 更改为以下内容和 get_loc用于获取列索引:

groups = df.groupby("set")
for name, group in groups:
somestuff = [group["N_D"], group["mu"], name]
for i, txt in enumerate(group["Name"]):
print(txt,group.iloc[i,group.columns.get_loc('Name')])
<小时/>
A A
B B
C C
x x
y y
z z

关于python - Pandas groupby : Nested loop fails with key error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60325160/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com