我知道如何基于另一列的值创建一个新的列apply
或np.where
,但是有选择地更改现有列的值的方法正在转义我;我怀疑涉及到df.ix
?我很亲近吗?
例如,这里有一个简单的数据帧(mine有上万行)。如果名称以字母“e”结尾,我想更改“flag”列中的值(假设为“Blue”):
>>> import pandas as pd
>>> df = pd.DataFrame({'name':['Mick', 'John', 'Christine', 'Stevie', 'Lindsey'], \
'flag':['Purple', 'Red', nan, nan, nan]})[['name', 'flag']]
>>> print df
name flag
0 Mick Purple
1 John Red
2 Christine NaN
3 Stevie NaN
4 Lindsey NaN
[5 rows x 2 columns]
我可以根据我的条件生成一个布尔级数:
>boolean_result = df.name.str.contains('e$')
>print boolean_result
0 False
1 False
2 True
3 True
4 False
Name: name, dtype: bool
我只需要关键的一步来得到以下结果:
>>> print result_wanted
name flag
0 Mick Purple
1 John Red
2 Christine Blue
3 Stevie Blue
4 Lindsey NaN
相关问题 更多 >
编程相关推荐