以行为条件选择 DataFrame 中的列

The*_*ard 6 python dataframe pandas

我正在尝试基于另一个数据帧生成一个数据帧(或系列),从依赖于使用另一个系列的行的第一帧中选择不同的列。在下面的简化示例中,我想要前三行的 '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'])
Run Code Online (Sandbox Code Playgroud)

第一帧

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

试图进入系列:

0   0.283519
1   -0.352342
2   0.731701
3   -1.469342
4   -0.706614
Run Code Online (Sandbox Code Playgroud)

我希望values[picked_values]会起作用,但这最终有五列。

在现实生活中的例子中,picked_values 要大得多并且是经过计算的。

感谢您的时间。

ank*_*_91 6

df.lookup

pd.Series(frame1.lookup(picked_values.index,picked_values))
Run Code Online (Sandbox Code Playgroud)
0    0.283519
1   -0.352342
2    0.731701
3   -1.469342
4   -0.706614
dtype: float64
Run Code Online (Sandbox Code Playgroud)

  • 这就是为什么堆栈溢出是最好的。谢谢! (2认同)