熊猫-根据条件更改数据框中的单元格值

时间:2019-08-21 12:44:08

标签: python python-3.x pandas

我有以下数据框(df):

colA   colB   colC
X      red    0
X      blue   0
Y      red    0
Y      blue   0

我希望根据其他列中的条件更新colC中的特定单元格。例如:将所有colC值更新为1,其中colA = X&colB = blue。

我尝试使用df.at和df.loc函数。不幸的是,我遇到了索引错误。不太确定我了解如何正确使用它们。

df.loc[df['colA'] == 'X' & df['colB'] == 'blue', df['colC']] = 1

我希望得到以下结果:

colA   colB   colC
X      red    0
X      blue   1
Y      red    0
Y      blue   0

感谢您的帮助

1 个答案:

答案 0 :(得分:6)

这里有2个问题-在条件周围缺少(),因为只有列名才需要优先级优先级和用于设置新列的

df.loc[(df['colA'] == 'X') & (df['colB'] == 'blue'), 'colC'] = 1