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

时间:2015-01-22 11:16:38

标签: python pandas compatibility

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

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]]

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

1 个答案:

答案 0 :(得分:1)

使用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,可能会或可能不会发生警告