gpt4 book ai didi

python - 如何根据基于另一个数据框的条件提取 Pandas 数据框的行

转载 作者:行者123 更新时间:2023-12-04 02:41:33 24 4
gpt4 key购买 nike

我有这两个数据框:

df1 = pd.DataFrame({'Points':[1,2,3,4,5], 'ColX':[9,8,7,6,5]})
df1
Points ColX
0 1 9
1 2 8
2 3 7
3 4 6
4 5 5

df2 = pd.DataFrame({'Points':[2,5], 'Sum':[-1,1], 'ColY':[2,4]}) # ColY does not matter, I just added it to say that this dataframe can have other columns that the useful columns for this topic
df2
Points Sum ColY
0 2 -1 2
1 5 1 4

我想获得一个包含 df1 行的数据框,其中:

  • df1中Points列的值也在df2的Points列中
  • df2中Sum列的值在0到2之间

因此,我想获取此数据框(无论索引如何):

    Points  ColX
4 5 5

我尝试了以下方法,但没有用:

df1[df1.merge(df2, on = 'Points')['Sum'] <= 2 and ['Sum']>=0] 

你能帮我找到正确的代码吗?

最佳答案

试试这个:

df1[df1['Points'].isin(df2.query('0 <= Sum <= 2')['Points'])]

输出:

  Points  ColX
4 5 5

解释:

  • df2.query('0 <= Sum <=2')首先将 df2 过滤为仅有效记录
  • 然后使用 bool 索引 isin过滤器 df2 点列。

关于python - 如何根据基于另一个数据框的条件提取 Pandas 数据框的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59159656/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com