我有以下数据框:
col
0 pre
1 post
2 a
3 b
4 post
5 pre
6 pre
我想将数据框中不包含'pre'的所有行替换为'nonpre',因此数据框如下所示:
col
0 pre
1 nonpre
2 nonpre
3 nonpre
4 nonpre
5 pre
6 pre
我可以使用字典和pandas替换来做到这一点,但是我想只选择不是'pre'的元素并用'nonpre'替换它们。如果没有在字典中列出所有可能的col值,有更好的方法吗?
答案 0 :(得分:24)
只要您对pandas允许的df.loc[condition, column]
语法感到满意,这非常简单,只需执行df['col'] != 'pre'
即可查找应更改的所有行:
df['col2'] = df['col']
df.loc[df['col'] != 'pre', 'col2'] = 'nonpre'
df
Out[7]:
col col2
0 pre pre
1 post nonpre
2 a nonpre
3 b nonpre
4 post nonpre
5 pre pre
6 pre pre
答案 1 :(得分:5)
df[df['col'].apply(lambda x: 'pre' not in x)] = 'nonpre'