我试图基于另一个数据帧生成一个数据帧(或序列),并使用另一个序列从第一帧中选择一个与列不同的列。在下面的简化示例中,我希望前三行的'a'中的frame1值,最后两行(picked_values系列)中的'b'。
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'])
框架1
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更大并且可以计算出来。
感谢您的时间。
最佳答案
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