Python 获取另一个数据帧上具有条件的数据帧列的最小值

Python 获取另一个数据帧上具有条件的数据帧列的最小值,python,pandas,Python,Pandas,假设我有两个数据帧: dfX = pd.DataFrame({'Points':["A","B","C","D"],'Group':[1,2,1,3]}) dfX Points Group 0 A 1 1 B 2 2 C 1 3 D 3 dfY = pd.DataFrame({'Points':["A","B","C","D"],'Score':[2,3,4,5]}) dfY Points Score 0 A 2 1

假设我有两个数据帧:

dfX = pd.DataFrame({'Points':["A","B","C","D"],'Group':[1,2,1,3]})
dfX
  Points Group
0   A      1
1   B      2
2   C      1
3   D      3

dfY = pd.DataFrame({'Points':["A","B","C","D"],'Score':[2,3,4,5]})
dfY
  Points Score
0   A      2
1   B      3
2   C      4
3   D      5
我想得到C点组的最低分数。因此,我想得到2分

因为C点在第1组中,第1组由A点和C点组成,我想得到A点和C点之间的最低分数,也就是说,2

在Python中如何实现这一点


谢谢

首先,您需要合并关键
点上的数据帧
,然后得到C点组,最后取该组中的分数平均值:

merged=pd.merge(dfX,dfY,on='Points')
group=merged.loc[merged.Points=='C','group']
val=merged.loc[merged.Group.isin(组),'Score'].min()
打印(val)

我怎么知道哪一点得分最低(本例中为A)?我找到了我前面问题的答案:merged=pd.merge(dfX,dfY,on='Points')group=merged.loc[merged.Points=='C','group']df_group=merged.loc[merged.group.isin(group)]df_group[df_group.score==df_group.score.max()]['Points']值[0]
2