根据条件修改列到位

时间:2015-07-01 15:11:53

标签: python csv pandas

我有一个csv文件,如下所示:

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

StatusDSpecies为Carex时,我想将Class更改为Wet。我想要的输出是:

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

我不在乎是否在熊猫中发布了答案,因为我仍然可以使用它,但我现在正在努力教我自己现在循环使用python。如果你知道如何做到这一点更受欢迎。

1 个答案:

答案 0 :(得分:3)

在pandas中,您可以使用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