我正在尝试基于另一个数据帧生成一个数据帧(或系列),从依赖于使用另一个系列的行的第一帧中选择不同的列。在下面的简化示例中,我想要前三行的 'a' 中的 frame1 值,最后两行的 'b 值(picked_values 系列)。
frame1=pd.DataFrame(np.random.randn(10).reshape(5,2),index=range(5),columns=['a','b'])
picked_values=pd.Series(['a','a','a','b','b'])
第一帧
a b
0 0.283519 1.462209
1 -0.352342 1.254098
2 0.731701 0.236017
3 0.022217 -1.469342
4 0.386000 -0.706614
试图进入系列:
0 0.283519
1 -0.352342
2 0.731701
3 -1.469342
4 -0.706614
我希望
values[picked_values]
会工作,但这最终有五列。在现实生活中的例子中,picked_values 要大得多并且是经过计算的。
感谢您的时间。
最佳答案
使用 df.lookup
pd.Series(frame1.lookup(picked_values.index,picked_values))
0 0.283519
1 -0.352342
2 0.731701
3 -1.469342
4 -0.706614
dtype: float64
关于python - 以行为条件选择 DataFrame 中的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59898266/