python - 使用带有 bool 值的列来访问其他列

标签 python numpy pandas

我有一个如下所示的 pandas 数据框:

A B C
1 2 1
3 4 0
5 2 0
5 3 1

如果 C 的值为 1,则希望从 A 获取值;如果 C 为零,则希望从 B 获取值。我该怎么做?最终我希望得到一个向量,如果 C 为 1,则值为 A;如果 C 为 0,则值为 B,这将是 [1,4,2,5]

最佳答案

假设您的意思是“从 A 开始,C 的值为 1;从 B 开始,如果 C 的值为 0”,考虑到您的预期输出,这是有意义的,我可能会使用 Series.where :

>>> df
   A  B  C
0  1  2  1
1  3  4  0
2  5  2  0
3  5  3  1
>>> df.A.where(df.C, df.B)
0    1
1    4
2    2
3    5
dtype: int64

表示“如果 C 的对应值为真,则使用 A 的值进行一系列操作,否则使用 B 的对应值”。由于 1 为真,我们可以使用 df.C ,但我们可以使用df.C == 1df.C*5+3 < 4或任何其他 bool 系列。

关于python - 使用带有 bool 值的列来访问其他列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19461741/

相关文章:

python - 在 Python 请求中使用 POST 表单数据上传图像

python - 将数据拆分为多个文件: how to handle (unknown number of) multiple connections

python - 通过分组对 NA 进行高性能填充

python - numpy:在两个二维数组的一个公共(public)轴上广播乘法

pandas - 如何有条件地在seaborn条形图中显示数据帧的不同列值?

python - Pandas 的问题

python - pyinstaller exe 在 sys.exit() 之后没有死

python - Sonar Issue : Remove this "\", 添加另一个 "\"对其进行转义,或将其设为原始字符串

python - 如何将Postgres bytea数据或Python memoryview对象转换为NumPy数组?

python - 如何获取 Pandas 指数位置和名称