基于来自其他字段的值在Pandas数据帧中分配值

时间:2015-04-28 10:44:40

标签: python pandas

我有一个看起来像这样的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已经完成,但我认为应该有更好的方法来做到这一点。有什么想法吗?

1 个答案:

答案 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