排序数据并应用 groupby 后查找最大时间增量

Find max time delta after sorting data and applying groupby

我有一个数据框 (df),其中包含两行,每个行有多个条目 'name':

                     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

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

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

我也试图通过构造一个枢轴来解决这个问题table:

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')