如何向其他列的条件添加值

时间:2017-07-25 21:34:55

标签: 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是foo,如何向列name添加10?

生成的df看起来像这样:

   colx  coly name
0    11     5  foo
1    12     6  foo
2     3     7  bar
3     4     8  bar

1 个答案:

答案 0 :(得分:4)

如果要修改值,可以使用loc运算符执行切片:

df.loc[df.name == 'foo','colx'] += 10

使用pandas的底层切片方法,这比循环或在数据帧上使用apply更快。如果您的数据框架变大,那就更好了。