Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于多列条件递增数据帧中的单元格值_Python_Pandas_Dataframe - Fatal编程技术网

Python 基于多列条件递增数据帧中的单元格值

Python 基于多列条件递增数据帧中的单元格值,python,pandas,dataframe,Python,Pandas,Dataframe,我正在尝试根据列1和列2中的检查来增加列3中的整数值 | column_1 | column_2 | column_3 0 | a | x | 1 1 | b | y | 1 2 | c | z | 1 如果column_1=a和column_2=x,我想将column_3中的值增加1 我尝试了以下方法,但不起作用- df = pd.DataFrame({ "col

我正在尝试根据
列1
列2
中的检查来增加列3中的整数值

  | column_1 | column_2 | column_3
0 |    a     |    x     |    1 
1 |    b     |    y     |    1 
2 |    c     |    z     |    1 
如果
column_1=a
column_2=x
,我想将
column_3
中的值增加
1

我尝试了以下方法,但不起作用-

df = pd.DataFrame({
    "column_1": ['a', 'b', 'c'], 
    "column_2": ['x', 'y', 'z'],
    "column_3": [1,1,1]
})

df[(df['column_1']=='a') & (df['column_2']=='x')]['column_3'] += 1
运行上述代码后,检查
df
输出将给出相同的数据帧

在Jupyter显示警告后,我使用了
.loc
,但它仍然不起作用

df.loc[df.column_1.isin(['a']) & df.column_2.isin(['x'])]['column_3'].iat[0] += 1
我们究竟如何做到这一点?

使用是正确的方法,但也有必要删除
][
iat

df.loc[(df['column_1']=='a') & (df['column_2']=='x'), 'column_3'] += 1

print (df)
  column_1 column_2  column_3
0        a        x         2
1        b        y         1
2        c        z         1
另一个解决方案包括:


太好了。!!想知道是否还有其他方法可以实现这一点?或者这是解决我特定问题的唯一方法?@AmitPathak-补充了另一个想法。
df['column_3'] += np.where((df['column_1']=='a') & (df['column_2']=='x'), 1, 0)

print (df)
  column_1 column_2  column_3
0        a        x         2
1        b        y         1
2        c        z         1