Python:根据其他两列的值有条件地创建新列

标签 python pandas numpy dataframe

我想将两列合并到一个新列中。

假设我有:

Index A B
0     1 0
1     1 0
2     1 0
3     1 0
4     1 0
5     1 2
6     1 2
7     1 2
8     1 2
9     1 2
10    1 2

现在我想创建一个 C 列,其中包含 A 中索引 0 到 4 的条目以及 B 列中索引 5 到 10 中的条目。它应该如下所示:

Index A B C
0     1 0 1
1     1 0 1
2     1 0 1
3     1 0 1
4     1 0 1
5     1 2 2
6     1 2 2
7     1 2 2
8     1 2 2
9     1 2 2
10    1 2 2

是否有 python 代码如何获取它?提前致谢!

最佳答案

如果 Index 是您可以使用的实际列 numpy.where并说明你的条件

import numpy as np

df['C'] = np.where(df['Index'] <= 4, df['A'], df['B'])

    Index  A  B  C
0       0  1  0  1
1       1  1  0  1
2       2  1  0  1
3       3  1  0  1
4       4  1  0  1
5       5  1  2  2
6       6  1  2  2
7       7  1  2  2
8       8  1  2  2
9       9  1  2  2
10     10  1  2  2

关于Python:根据其他两列的值有条件地创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62951509/

相关文章:

python - MultiIndex 查找给定级别具有给定值的所有索引

arrays - Python 二维数组获取第一列等于0的所有行

python横截面曲线拟合

python - 如何根据用户输入打印一个多面体的体积?

python - TZ 数据库和多个美国时区

python pandas : Reallocate index, 数据框中的列和值

python - 过滤二维数组并从中间返回坐标

python - 无法从 VS CODE 状态栏更改 python 解释器

python - 在 TideSDK 中订购菜单项

python - 如何使用字符串中的位置来更改 Pandas Dataframe 列中的每个字符串