pandas 中的 SettingWithCopyWarning:如何设置列中的第一个值?

SettingWithCopyWarning in pandas: how to set the first value in a column?

当 运行 我的代码时,我收到以下消息:

SettingWithCopyWarning: 
A value is trying to be set on a copy of a slice from a DataFrame

See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
  df['detect'][df.index[0]] = df['event'][df.index[0]]

将一列的第一个值设置为等于另一列的第一个值的正确方法是什么?

使用ix执行索引标签选择:

In [102]:

df = pd.DataFrame({'detect':np.random.randn(5), 'event':np.arange(5)})
df
Out[102]:
     detect  event
0 -0.815105      0
1 -0.656923      1
2 -1.417722      2
3  0.210070      3
4  0.211728      4
In [103]:

df.ix[0,'detect'] = df.ix[0,'event']
df
Out[103]:
     detect  event
0  0.000000      0
1 -0.656923      1
2 -1.417722      2
3  0.210070      3
4  0.211728      4

你正在做的事情被称为 chained indexing,可能会或可能不会工作因此警告