如何根据Pandas中另一列的条件比较同一列中的日期?

jceg316

我有一个带有u_id,日期,订单的df,并且我需要添加一列,该列为每个用户提供每个订单之间的日期差。例如:

u_id | date       | order
001  | 2019-01-01 |  1
001  | 2019-01-10 |  2
001  | 2019-01-15 |  3
002  | 2019-05-03 |  1
002  | 2019-05-06 |  2
...

我的目标是:

u_id | date       | order | date_difference
001  | 2019-01-01 |  1    |    NaT
001  | 2019-01-10 |  2    |   9 days
001  | 2019-01-15 |  3    |   5 days
002  | 2019-05-03 |  1    |    NaT
002  | 2019-05-06 |  2    |   3 days
...

date_difference col不一定需要说几天。

我在python 3.6中使用了pandas。

广晃

您可以groupby

df['date_difference'] = df.groupby('u_id')['date'].diff()

或没有groupby给出正确的顺序:

df['date_difference'] = df.date.diff().where(df.u_id==df.u_id.shift())

输出:

   u_id       date  order date_difference
0     1 2019-01-01      1             NaT
1     1 2019-01-10      2          9 days
2     1 2019-01-15      3          5 days
3     2 2019-05-03      1             NaT
4     2 2019-05-06      2          3 days

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

根据另一列中的条件填充熊猫

重击:查找一列中的重复项,根据另一列的比较删除行

根据R中另一列的日期范围查找一列的平均值

根据另一列的条件更新Pandas DataFrame中的一列

VBA-根据另一列中的连续日期查找一列中的条件值更改

Pandas groupby:根据另一列中的值更改一列中的值

如何根据另一列中的条件转置一列?

根据条件将一列中的值替换为另一列中的值

根据Pyspark中另一列的值,有条件地从同一列的另一行值替换一行中的值?

根据另一列中的条件修改一列中的值的快捷方式

如何根据另一列中的值填充另一列中的值?

根据另一列中的值比较一列中的两个值

熊猫,根据条件在另一列中搜索结果

如何根据条件将一列中的值设置为另一列

如何使一列根据另一列中的日期返回期望值?

如何根据另一列中的条件更改数据框的某一列中的值?

根据条件将一列中的条目替换为另一列中的条目

如何根据同一表中的另一列数据填充一列?

pandas - 根据另一列更改列中的值

如何使用pandas根据同一行另一列中存在的数据修改一列的数据

如何根据另一列的条件/分组删除一列中的连续重复行?

根据pandas中另一列中的日期添加一个期间列

如何根据条件在熊猫中创建另一列?

如何根据pandas中的多个条件生成一列?

根据另一列中满足的条件进行过滤

如何根据 Pandas 数据框中另一列的条件将值填充到新列中?

将 Dataframe 中的一列与 Pandas 中不同大小的另一列进行比较

根据R中另一列的条件从一列中删除重复项

根据 SQL 中的另一列获取最大日期