按日期订购事件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了按日期订购事件相关的知识,希望对你有一定的参考价值。

我有一个应用程序安装的Pandas DataFrame,每个用户每次安装有一行 - 因此安装了多个应用程序的用户将拥有多行。

列是用户名,应用程序名称和安装日期。用户可以在同一天安装多个应用程序。

如何找到应用安装的发生顺序,同一天安装的应用被排列为相同的安装顺序?

我想要的是传递用户,应用程序和日期,然后获得订单

User App Date Order 0 A 1 4/23/2019 3 1 A 2 4/23/2019 3 2 A 3 4/20/2019 2 3 A 4 3/15/2019 1 4 B 1 3/1/2019 1 5 B 2 3/1/2019 1 6 B 3 3/1/2019 1 7 C 1 3/1/2019 1 8 C 2 5/1/2019 2 9 C 3 8/1/2019 3

答案

查看rank

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)
另一答案

假设有一个示例数据帧

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]

以上是关于按日期订购事件的主要内容,如果未能解决你的问题,请参考以下文章

按最近日期订购日期-SQL 选择单个 ID

按日期时间的月/日订购 Django QuerySet?

订购日期从最近到最远

按日期订购多张发票并在公司表中,但仅显示公司列表

SQL - 在按创建日期订购“重复重新推送”时显示一行两次

以定制的方式排列记录