我有一个看起来像这样的df
1 2 3 4 5
date
2015-01-02 a NaN 9.04 5604.81 Misc
2015-02-02 b NaN 9.41 5200.24 Misc
2015-03-02 c NaN 8.81 6070.10 Misc
2015-04-01 d NaN 9.73 6934.83 Misc
我想根据1处的值将值更改为5.我试过:
data['5'][data.1=='a']='something'
但那会给我以下警告
A value is trying to be set on a copy of a slice from a DataFrame
Job已经完成,但我认为应该有更好的方法来做到这一点。有什么想法吗?
答案 0 :(得分:1)
通常您应该使用ix
df.ix[df['1']=='a', '5'] = 'Something'
或loc
df.loc[df['1']=='a', '5'] = 'Something'
虽然链式索引有效,但有时会导致问题
df['5'][df['1']=='a'] = 'Something'
您可能希望进一步阅读Pandas indexing and assignment