虽然我一般都了解警告,而且很多帖子都是这样处理的,但我不明白为什么只有当我到达groupby线(最后一个)时才会收到警告:
grouped = data.groupby(['group'])
for name, group in grouped:
data2=group.loc[data['B-values'] > 0]
data2["unique_A-values"]=data2.groupby(["A-values"])["A-values"].transform('count')
编辑: 这是我的数据框(数据):
group A-values B-values
human 1 -1
human 1 5
human 1 4
human 3 4
human 2 10
bird 7 8
....
对于B值> 0(data2=group.loc[data['B-values'] > 0]
):
人类有两个等于一的A值,一个等于3,一个等于2(data2["unique_A-values"]=data2.groupby(["A-values"])["A-values"].transform('count')
)
答案 0 :(得分:1)
您收到错误是因为您引用了您的groupby,然后尝试向其添加一列,所以它只是警告您,如果您打算更新原始df,那么这可能会也可能不起作用。
如果您只是修改本地副本,请使用copy()
复制,以便明确显示,警告将消失:
for name, group in grouped:
data2=group.loc[data['B-values'] > 0].copy() # <- add .copy() here
data2["unique_A-values"]=data2.groupby(["A-values"])["A-values"].transform('count')