【发布时间】:2019-08-16 01:01:17
【问题描述】:
我有两个表,想将它们合并。在右表上,我有多行,因此合并结果是一个更大的表。在 SQL 中,我对每个组使用 HAVING,并使用 max() 进行过滤。我不知道如何在熊猫中做到这一点。
决赛桌应该是这样的:
df1 = pd.DataFrame([['k1', 2], ['k2', 3], ['k3', 6]], columns=['A', 'B'])
df2 = pd.DataFrame([['k1', 20 , "2018-3-1"], ['k1', 30 ,"2018-3-1" ], ['k3', 60,"2018-4-1"]], columns=['A', 'C', 'Date'])
df3 = pd.merge(df1,df2[['A', 'Date']], on='A', how='left')
无效的解决方案:
df3.groupby('A').filter(lambda x: x['Date']==x['Date'].max())
【问题讨论】:
-
df3.groupby('A').last()也不起作用