Python 按日期订购事件
我有一个应用程序安装的数据框架,每个用户每次安装一行,因此安装了多个应用程序的用户将有多行 这些列是用户名、应用程序名和安装日期。用户可以在同一天安装多个应用程序 我如何找到应用程序安装的发生顺序,同时将当天安装的应用程序按相同的安装顺序排列 我想要的是传入用户、应用程序和日期,然后获取订单Python 按日期订购事件,python,pandas,grouping,pandas-groupby,Python,Pandas,Grouping,Pandas Groupby,我有一个应用程序安装的数据框架,每个用户每次安装一行,因此安装了多个应用程序的用户将有多行 这些列是用户名、应用程序名和安装日期。用户可以在同一天安装多个应用程序 我如何找到应用程序安装的发生顺序,同时将当天安装的应用程序按相同的安装顺序排列 我想要的是传入用户、应用程序和日期,然后获取订单 用户应用程序日期顺序 0 A 1 2019年4月23日3 1A 2 2019年4月23日3 2 A 3 2019年4月20日2 3 A 4 2019年3月15日1 4 B 1 2019年1月3日1 5 B
用户应用程序日期顺序
0 A 1 2019年4月23日3
1A 2 2019年4月23日3
2 A 3 2019年4月20日2
3 A 4 2019年3月15日1
4 B 1 2019年1月3日1
5 B 2 2019年1月3日1
6 B 3 2019年1月3日1
7 C 1 2019年1月3日1
8 C 2 2019年1月5日2
9 C 3 2019年1月8日3
假设一个示例数据帧
User App Date
0 A 1 4/23/2019
1 A 2 4/23/2019
2 B 3 4/20/2019
3 B 4 3/15/2019
4 B 5 3/1/2019
5 C 6 3/1/2019
6 C 7 3/1/2019
听上去,如果你想对同一天安装的应用程序进行分组,你可以使用groupby进行分组
df_grouped=df.groupby(['Date'])['App'].unique().reset_index()
导致
Date App
0 3/1/2019 [5 6 7]
1 3/15/2019 [4]
2 4/20/2019 [3]
3 4/23/2019 [1 2]
检查
等级
df.Date=pd.to_datetime(df.Date)
df.groupby('User').Date.rank(method='min',ascending=True)
0 3.0
1 3.0
2 2.0
3 1.0
4 1.0
5 1.0
6 1.0
7 1.0
8 2.0
9 3.0
Name: Date, dtype: float64
df['Order']= df.groupby('User').Date.rank(method='min',ascending=True).astype(int)
你能提供一个数据帧的示例吗?@rahlf23-我已经添加了一个我试图实现的示例。谢谢你的回复,非常感谢你抽出时间。这几乎就是我想要的,我用我想要的结果编辑了这个问题。希望这更能说明问题。干杯者@Wen Ben,这让我到达了我需要到达的地方。谢谢