python - 以行为条件选择 DataFrame 中的列

标签 python pandas dataframe

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

相关文章:

R使用限制在数据框中查找数据

r - 按数据框行计算小于 x 的值数

python Pandas : split comma-separated column into new columns - one per value

r - 将五年数据转换为年度数据并在 R 中计算新记录

python - 我可以使用 dotall 的非贪婪正则表达式吗?

javascript - NoReverseMatch,反向登录未找到错误

带有变量的 Python pandas ISIN

python - 如何合并 Pandas 中的列?

python - 如何创建 Python 卷积核?

python - Discord.py:你能从他们的 id 中获取不在你的机器人服务器中的用户的名称吗?