【发布时间】:2014-07-04 11:52:54
【问题描述】:
如果我没想到会出现SettingWithCopyWarning 错误:
N.In <38>: # Column B does not exist yet
N.In <39>: df['B'] = df['A']/25
N.In <40>: df['B'] = df['A']/50
/Users/josh/anaconda/envs/py27/lib/python2.7/site-packages/pandas/core/indexing.py:389: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
self.obj[item] = s
和
N.In <41>: df.loc[:,'B'] = df['A']/50
/Users/josh/anaconda/envs/py27/lib/python2.7/site-packages/pandas/core/indexing.py:389: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame.
Try using .loc[row_index,col_indexer] = value instead
self.obj[item] = s
为什么会发生在案例 1 和 2 中?
【问题讨论】:
-
您需要在此之前显示代码(尽可能多)
-
谢谢@Jeff 我用前几行更新了 OP
-
在此之前添加;你以前在原地做一个操作
-
我一直不明白为什么需要这么复杂,因此创建了一个更简单的数据表库,tabel github.com/BastiaanBergman/tabel。对于简单的用例,它也更快。