如何在Pandas中创建类似SQL的窗口函数?

kwvwclae  于 2023-08-01  发布在  其他
关注(0)|答案(1)|浏览(83)

我的数据如下所示:
| 组织名称|个人ID|日期| date |
| --|--|--| ------------ |
| 微软公司|四五三二四一|2005年1月1日| 1/1/05 |
| 斑马|二一三四一|1995年6月1日| 6/1/95 |
| 公司名称|42343241| 23年1月1日| 1/1/23 |
| 微软公司|098678| 2013年2月1日| 2/1/13 |
| 微软公司|六七八六|23年6月1日| 6/1/23 |
| 斑马|五四六|2006年4月1日| 4/1/06 |
| 公司名称|vcxv313| 23年2月1日| 2/1/23 |
| 新斑马|八百七十六|23年4月1日| 4/1/23 |
| 公司名称|432gf| 23年4月1日| 4/1/23 |
我想运行类似于这种SQL查询的Pandas函数:

SELECT org_id, org_name
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY org_id ORDER BY date DESC) as row_num,
org_id, org_name
FROM dataframe
)
WHERE row_num = 1

字符串
结果集应为:
| 组织名称| org_name |
| --| ------------ |
| 微软公司| Microsoft Inc |
| 新斑马| NewZebra |
| 公司名称| Company |
我发现自己在使用Pandas groupby语法和聚合函数时遇到了麻烦。如果你能帮忙的话

ktecyv1j

ktecyv1j1#

在pandas中,我们可以按照描述顺序按日期对 Dataframe 进行排序,然后删除重复项

df['date_'] = pd.to_datetime(df['date'], format='%d/%m/%y')
result = (
    df
    .sort_values('date_', ascending=False)
    .drop_duplicates(subset=['org_id'])
    .reindex(columns=['org_id', 'org_name'])
)

个字符

相关问题