繁体   English   中英

如何以其他列为条件向列添加值

[英]How to add value to column conditional on other column

在大熊猫中,如何以其他列中的字符串为条件向列中添加值? (类似于二维切片操作?)

例如,具有如下数据框:

df = pd.DataFrame({'name': ['foo', 'foo', 'bar', 'bar'],
                   'colx': [1, 2, 3, 4],
                   'coly': [5, 6, 7, 8]})

如果列name是foo,如何将10添加到列colx

产生的df如下所示:

   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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM