我有以下数据框:

     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 replace来完成这项工作,但是我只想选择不是“pre”的元素,并用“nonpre”替换它们。在字典中不列出所有可能的列值的情况下,有没有更好的方法可以做到这一点?

最佳答案

只要您熟悉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

关于python - Pandas 取代了值(value)观,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27117773/

10-11 08:34