因此,我从this answer到this question了解到,在熊猫0.20.3及更高版本中,重新分配数据帧的值的工作方式很多,而无需通过以下方式提供SettingWithCopyWarning:
df = pd.DataFrame(np.ones((5,6)),columns=['one','two','three',
'four','five','six'])
df.one *=5
df.two = df.two*5
df.three = df.three.multiply(5)
df['four'] = df['four']*5
df.loc[:, 'five'] *=5
df.iloc[:, 5] = df.iloc[:, 5]*5
但是
例如,如果我要像这样使用数据框的一部分:
df1 = df[(df.index>1)&(df.index<5)]
然后尝试使用上述方法之一重新分配列,如下所示:
df.one *=5
当我将获得SettingWithCopyWarning时。
那么这是一个错误还是我只是对熊猫期望这种操作起作用的方式有所遗漏?