我有一个csv文件,看起来像这样:

Class     Status    Species
Sands       D        Carex
Clay        C        Carex
Loam        D        Poapra


StatusD并且Species是Carex时,我想将Class更改为Wet。我想要的输出是:

Class     Status    Species
Wet         D        Carex
Clay        C        Carex
Loam        D        Poapra


我不在乎答案是否发布在大熊猫上,因为我仍然可以使用它,但是我真的是想自学一下在python中循环。如果您知道如何做到这一点,那就更加欢迎。

最佳答案

在熊猫中,您可以使用loc来掩盖df并通过运算符优先级传递用括号括起来的2个布尔条件,因为在比较数组时必须使用&运算符:

In [233]:
df.loc[(df['Status'] == 'D') & (df['Species'] == 'Carex'), 'Class'] = 'Wet'
df

Out[233]:
  Class Status Species
0   Wet      D   Carex
1  Clay      C   Carex
2  Loam      D  Poapra

08-24 22:31