python - pandas:根据其他列乘以列

标签 python pandas dataframe

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

最佳答案

您可以通过两步完成:

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

或者在 1 步中使用 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

关于python - pandas:根据其他列乘以列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25196528/

相关文章:

python - Selenium Chrome 驱动程序 - 语法错误 : (unicode error) 'unicodeescape' codec

python - 无法通过 LAN 发送以太网包

php - Vim:适用于 Python 和 PHP 的优秀自动完成插件

python - Pandas 离开并更新现有列

Python pandas 将瞬时每小时数据重新采样为每日时间步长,包括 00 :00 of next day

python - 减去数据框中的两列

python - 如何根据计数器列复制行

python - 尝试调用 AlchemyLanguage API

python - FutureWarning : In a future version of pandas all arguments of DataFrame. any 和 Series.any 将仅包含关键字

python - 按具有相同名称的列连接数据框