pandas:A value is trying to be set on a copy of a slice from a DataFrame. Try using....

本质上是运用了pd.loc导致的报错。例如如下dataframe:
pandas:A value is trying to be set on a copy of a slice from a DataFrame. Try using...._第1张图片
pandas不推荐你用:

df['a'].loc[df['a']='bar']=foo

而推荐你用

df.loc[df['a']='bar','a']=foo

这是因为pandas里的切片是逻辑切片,就是切片了指向的还是原来的数据空间。pandas怕你搞晕了,就规定了你必须这么写,这样是非常明确的对原来dataframe重新赋值。
目前现有的攻略大都通过.copy来做,这违反了本来的意愿。

你可能感兴趣的:(pandas,python,数据分析)