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

Kla*_*msi 2 python numpy dataframe pandas

我想在一个新列中合并两列。

假设我有:

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
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

有没有python代码我怎么能得到这个?提前致谢!

Ric*_*c S 5

如果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
Run Code Online (Sandbox Code Playgroud)