本质上是运用了pd.loc导致的报错。例如如下dataframe:
pandas不推荐你用:
df['a'].loc[df['a']='bar']=foo
而推荐你用
df.loc[df['a']='bar','a']=foo
这是因为pandas里的切片是逻辑切片,就是切片了指向的还是原来的数据空间。pandas怕你搞晕了,就规定了你必须这么写,这样是非常明确的对原来dataframe重新赋值。
目前现有的攻略大都通过.copy来做,这违反了本来的意愿。
本质上是运用了pd.loc导致的报错。例如如下dataframe:
pandas不推荐你用:
df['a'].loc[df['a']='bar']=foo
而推荐你用
df.loc[df['a']='bar','a']=foo
这是因为pandas里的切片是逻辑切片,就是切片了指向的还是原来的数据空间。pandas怕你搞晕了,就规定了你必须这么写,这样是非常明确的对原来dataframe重新赋值。
目前现有的攻略大都通过.copy来做,这违反了本来的意愿。