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,这让我到达了我需要到达的地方。谢谢