虽然我通常理解警告,很多帖子都处理这个问题,但我不明白为什么只有当我到达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')
编辑:这是我的数据帧(data):
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值等于1,一个等于3,一个等于2 (data2["unique_A-values"]=data2.groupby(["A-values"])["A-values"].transform('count')
)
发布于 2015-06-03 14:43:12
之所以会出现这个错误,是因为您引用了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')
https://stackoverflow.com/questions/30620594
复制相似问题