如何根据其他列向列添加值

2023-12-07

在 pandas 中,如何根据其他列中的字符串向列添加值? (类似于二维切片操作?)

例如,有一个像这样的数据框:

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

如何将 10 添加到列colx如果列name是富吗?

结果 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 的底层切片方法,这比循环或在数据帧上应用应用要快得多。如果你的数据框变大的话。

EDIT:

如果需要多个条件,则需要括号,例如:

df.loc[(df.name == 'foo') & (df.coly == '5'),'colx'] += 10
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据其他列向列添加值 的相关文章

随机推荐