在 pandas 中,如何根据其他列中的字符串向列中添加一个值? (类似于二维切片操作的东西?)
例如,有这样一个数据框:
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 的底层切片方法,这比循环或在数据帧上使用应用要快得多。如果您的数据框变大,则更是如此。
编辑:
如果需要多个条件,则需要括号,例如:
df.loc[(df.name == 'foo') & (df.coly == '5'),'colx'] += 10
关于python - 如何将值添加到以其他列为条件的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313889/