创建一个由其他列组合而成的列

2024-04-26 22:10:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含3列的数据框,我想创建一个新列,如下所示:

import pandas as pd
import numpy as np
np.random.seed(2019)
df = pd.DataFrame(np.random.randn(5,3), columns=['A','B','C'])
cols = df.abs().idxmax(axis = 1)
cols
0    C
1    A
2    A
3    B
4    B
dtype: object

我想创建一个列D,它在索引0处取值C,在索引1处取值A,等等。。换句话说,D根据对象cols从适当的列中获取值。我确信我可以循环索引并选择列,但是有更好的方法吗?你知道吗


Tags: columns数据importnumpydataframepandasdfas
1条回答
网友
1楼 · 发布于 2024-04-26 22:10:31

使用^{}

print (df)
          A         B         C
0 -0.217679  0.821455  1.481278
1  1.331864 -0.361865  0.685609
2  0.573761  0.287728 -0.235634
3  0.953490 -1.689625 -0.344943
4  0.016905 -0.514984  0.244509

df['D'] = df.lookup(df.index, cols)
print (df)
          A         B         C         D
0 -0.217679  0.821455  1.481278  1.481278
1  1.331864 -0.361865  0.685609  1.331864
2  0.573761  0.287728 -0.235634  0.573761
3  0.953490 -1.689625 -0.344943 -1.689625
4  0.016905 -0.514984  0.244509 -0.514984

相关问题 更多 >