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

Python:根据其他两列的值有条件地创建新列,python,pandas,numpy,dataframe,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列,其中包含从索引0到4的a列和从索引5到10的B列的条目。应该是这样的: Index A B C 0 1 0 1 1 1 0 1 2 1 0 1 3 1 0 1

我想把两个栏目合并成一个新栏目

假设我有:

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列,其中包含从索引0到4的a列和从索引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

有python代码吗?我怎样才能得到它?提前谢谢

如果
索引
是一个实际列,您可以使用并指定您的条件

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
将numpy导入为np

df['C']=np.where(df['Index']如果您的索引是您的实际索引

您可以使用iloc切片索引,并使用concat创建列

df['C']  = pd.concat([df['A'].iloc[:5], df['B'].iloc[5:]])


print(df)

    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

索引是列还是实际索引?