排序数据并应用 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')
我认为您需要使用 diff
和 max
的自定义函数以获得最大时间增量:
#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')
我有一个数据框 (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')
我认为您需要使用 diff
和 max
的自定义函数以获得最大时间增量:
#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')