如何从pandas数据框中的bool和float列计算新的矢量化列?

布伦丹·希尔

我的DataFrame混合使用float和boolean:

df = pd.DataFrame.from_csv("C:\....")

df['isActive'] = (df.turns >= 250) & (df.alivePct > 0) & (df.changePct > 0)

我想创建一个新列,如果isActive == false,则该值= 0,否则该值等于一些计算出的量,如下所示:

df['interestingness'] = (df.changePct * df.alivePct) if df.isActive else 0

但是,由于df.isActive是一个Series,因此出现此错误:

ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

似乎三元if / else运算符不能用于向量化操作中。

手动迭代又如何做呢?

(注意:df.isActive是一个简单的技巧,它将df.isActive的值设置为0,即False ==0。但是,我想知道一个更通用的解决方案。)

算了吧

您可以使用np.where

import numpy as np
df['interestingness'] = np.where(df.isActive, df.changePct * df.alivePct, 0)

对于一维数组,np.where(condition, A, B)是矢量化的等效于

np.array([a if c else b for a,b,c in zip(condition, A, B)])

熊猫还提供了一个Series.where方法,您可以使用:

df['interestingness'] = (df.changePct * df.alivePct).where(df.isActive, 0)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在2个Pandas数据框列之间进行矢量化/矩阵计算

来自分类Dev

矢量化熊猫数据系列的标准差计算

来自分类Dev

熊猫列的矢量化“和”

来自分类Dev

熊猫数据框矢量化采样

来自分类Dev

在熊猫中按列内容标记日期(矢量化)

来自分类Dev

使用Pandas数据框中的两列计算加权和

来自分类Dev

基于其他列条件和其他列计算的数据框新列值

来自分类Dev

在data.tables中创建新列时如何使用矢量化的get()函数?

来自分类Dev

使用R中的矢量化代码在多列之间比较和替换值

来自分类Dev

在矢量化函数中调用矢量化函数

来自分类Dev

根据现有列计算数据框中的新列

来自分类Dev

您将如何优化此矢量化的谐波和?

来自分类Dev

根据现有列计算数据框中的新累积列

来自分类Dev

从另一个Multiindexed数据框的索引填充数据框列的矢量化方法?

来自分类Dev

如何对大型数据集的R中的for循环进行矢量化

来自分类Dev

如何对均匀变换矩阵/张量进行矢量化计算?

来自分类Dev

将组名(来自groupby)存储到原始DataFrame的新列中的矢量化方法?

来自分类Dev

在熊猫数据框的某些列上对和进行矢量化

来自分类Dev

Lambda和python中的矢量化

来自分类Dev

在pandas数据框中创建一列,该列计算两行之间的差异

来自分类Dev

在熊猫中按列内容标记日期(矢量化)

来自分类Dev

如何在numpy中矢量化傅立叶级数部分和

来自分类Dev

如何在 Pandas DataFrame 上对循环进行矢量化

来自分类Dev

Pandas - 按用户计算矢量化系列交易活动

来自分类Dev

pandas - 使用 nans 进行矢量化公式计算

来自分类Dev

根据现有的行和列计算 r 数据框 r 中的新行

来自分类Dev

以矢量化方式更新 oracle 中的列

来自分类Dev

在具有重复索引的数据帧之间进行矢量化计算时,Pandas 保持索引顺序

来自分类Dev

如何矢量化长度频率计算?

Related 相关文章

  1. 1

    在2个Pandas数据框列之间进行矢量化/矩阵计算

  2. 2

    矢量化熊猫数据系列的标准差计算

  3. 3

    熊猫列的矢量化“和”

  4. 4

    熊猫数据框矢量化采样

  5. 5

    在熊猫中按列内容标记日期(矢量化)

  6. 6

    使用Pandas数据框中的两列计算加权和

  7. 7

    基于其他列条件和其他列计算的数据框新列值

  8. 8

    在data.tables中创建新列时如何使用矢量化的get()函数?

  9. 9

    使用R中的矢量化代码在多列之间比较和替换值

  10. 10

    在矢量化函数中调用矢量化函数

  11. 11

    根据现有列计算数据框中的新列

  12. 12

    您将如何优化此矢量化的谐波和?

  13. 13

    根据现有列计算数据框中的新累积列

  14. 14

    从另一个Multiindexed数据框的索引填充数据框列的矢量化方法?

  15. 15

    如何对大型数据集的R中的for循环进行矢量化

  16. 16

    如何对均匀变换矩阵/张量进行矢量化计算?

  17. 17

    将组名(来自groupby)存储到原始DataFrame的新列中的矢量化方法?

  18. 18

    在熊猫数据框的某些列上对和进行矢量化

  19. 19

    Lambda和python中的矢量化

  20. 20

    在pandas数据框中创建一列,该列计算两行之间的差异

  21. 21

    在熊猫中按列内容标记日期(矢量化)

  22. 22

    如何在numpy中矢量化傅立叶级数部分和

  23. 23

    如何在 Pandas DataFrame 上对循环进行矢量化

  24. 24

    Pandas - 按用户计算矢量化系列交易活动

  25. 25

    pandas - 使用 nans 进行矢量化公式计算

  26. 26

    根据现有的行和列计算 r 数据框 r 中的新行

  27. 27

    以矢量化方式更新 oracle 中的列

  28. 28

    在具有重复索引的数据帧之间进行矢量化计算时,Pandas 保持索引顺序

  29. 29

    如何矢量化长度频率计算?

热门标签

归档