pandas:根据其他列乘以列

时间:2014-08-08 05:24:58

标签: python pandas dataframe

我有一个包含a和b列的数据框。如果b为真,我想将列a乘以值x,如果b为假,则将值乘以值y。实现这一目标的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

你可以分2步完成:

df.loc[df.b, 'a'] *= x
df.loc[df.b == False, 'a'] *= y

或使用where

一步完成
In [366]:

df = pd.DataFrame({'a':randn(5), 'b':[True, True, False, True, False]})
df
Out[366]:
          a      b
0  0.619641   True
1 -2.080053   True
2  0.379665  False
3  0.134897   True
4  1.580838  False

In [367]:

df.a *= np.where(df.b, 5,10)
df
Out[367]:
           a      b
0   3.098204   True
1 -10.400266   True
2   3.796653  False
3   0.674486   True
4  15.808377  False