Python 如何在其他列的条件下向列添加值
在pandas中,如何在另一列中的字符串的条件下向列添加值?类似于二维切片操作的东西 例如,具有如下数据帧:Python 如何在其他列的条件下向列添加值,python,python-3.x,pandas,dataframe,Python,Python 3.x,Pandas,Dataframe,在pandas中,如何在另一列中的字符串的条件下向列添加值?类似于二维切片操作的东西 例如,具有如下数据帧: df = pd.DataFrame({'name': ['foo', 'foo', 'bar', 'bar'], 'colx': [1, 2, 3, 4], 'coly': [5, 6, 7, 8]}) colx coly name 0 11 5 foo 1 12 6 f
df = pd.DataFrame({'name': ['foo', 'foo', 'bar', 'bar'],
'colx': [1, 2, 3, 4],
'coly': [5, 6, 7, 8]})
colx coly name
0 11 5 foo
1 12 6 foo
2 3 7 bar
3 4 8 bar
如果列名为foo,如何向colx列添加10
生成的df如下所示:
df = pd.DataFrame({'name': ['foo', 'foo', 'bar', 'bar'],
'colx': [1, 2, 3, 4],
'coly': [5, 6, 7, 8]})
colx coly name
0 11 5 foo
1 12 6 foo
2 3 7 bar
3 4 8 bar
要修改值时,可以使用loc运算符执行切片:
df.loc[df.name == 'foo','colx'] += 10
使用pandas的底层切片方法,这将比在数据帧上循环或使用apply快得多。如果您的数据帧变大,情况会更糟
编辑:
如果需要多个条件,则需要括号,例如:
df.loc[(df.name == 'foo') & (df.coly == '5'),'colx'] += 10
要修改值时,可以使用loc运算符执行切片:
df.loc[df.name == 'foo','colx'] += 10
使用pandas的底层切片方法,这将比在数据帧上循环或使用apply快得多。如果您的数据帧变大,情况会更糟
编辑:
如果需要多个条件,则需要括号,例如:
df.loc[(df.name == 'foo') & (df.coly == '5'),'colx'] += 10
我怎么能在这里给出两个条件?如果说,name是'foo'而coly是'5',那么将10添加到colx我如何在这里给出两个条件?如果说,名称是“foo”,coly是“5”,那么将10添加到colx中