python - 对数据进行排序并应用 groupby 后查找最大时间增量

标签 python sorting pandas timedelta pandas-groupby

我有一个数据框 (df),其中包含两行,每个“名称”有多个条目:

                     name                           date
       Official Press FRC        2015-02-19 20:30:00.000
   Other Publications BOJ        2015-04-16 07:00:00.000
           Bank of Russia        2015-06-11 09:44:37.000

我想找到每个“名称”的“日期”的最大差异。我的方法是尝试对日期进行排序,同时按名称分组,然后使用 .diff() 求差。下面是我尝试过的代码:

grouped = df.sort_values('date').groupby('name')
differences = grouped.diff()

我还尝试通过构建数据透视表来解决该问题:

grouped = df.pivot(columns='name', values='date')

最佳答案

我认为您需要使用 diffmax 来实现最大时间增量的自定义函数:

#if necessary convert to datetime 
df['date'] = pd.to_datetime(df['date'])
df1 = df.sort_values('date')
        .groupby('name')['date'].apply(lambda x: x.diff().max())
        .reset_index(name='max_diff')

关于python - 对数据进行排序并应用 groupby 后查找最大时间增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44934870/

相关文章:

python - 声明变量的内存与在函数调用中定义变量时的内存

unix - 如何对具有不同字段分隔符的多个字段进行排序

linux - 唯一编号 : only when different by more than 1 character OR case

python - Plot.ly 的 Pandas GroupBy 对象不是 'serializable'

python - pandas 合并列并添加原始列

algorithm - 使用什么算法来匹配字符串的开头

Python - 动画波动方程的数值解

python - 决策树算法建议

python - 如何在 Linux 上安装 Python 包,以便可以通过已经运行的 PostgreSQL 13 plpython3u 扩展找到它?

python - 如何将列表的索引与 float 进行比较?