计算Python Pandas中行之间的数据时间差异

时间:2019-12-10 00:28:09

标签: python pandas dataframe datetime

我正在尝试为每个唯一的machine_id计算行之间的日期时间差。我已经对数据框进行了分组并尝试了

newdf = newdf.copy()
newdf['diffs'] = float('nan')
newdf = newdf.copy()
for index in newdf.index.levels[0]:
    newdf.diffs[index] = newdf.event_datetime[index].diff

数据集看起来像

https://i.stack.imgur.com/eg93C.png

2 个答案:

答案 0 :(得分:1)

在进行groupby操作后您是否尝试过diff?像这样:

newdf.groupby('machine_id').event_date.diff()

答案 1 :(得分:1)

我试图创建多索引数据框,使用diff()函数应该可以正常工作。

使用ATL建议的newdf.groupby('machine_id').event_date.diff()应该可以正常工作。 o

# hierarchical indices and columns
index = pd.MultiIndex.from_product([[598, 615, 721], [43, 43, 45]],
                                   names=['machine_id', 'prod_category_id'])

# mock some data
data = ['2017-03-20 12:00:00','2017-03-29 01:00:00','2017-04-29 01:00:00',
        '2017-03-30 02:00:00', '2017-04-29 02:00:00','2017-05-29 12:00:00',
        '2017-10-30 02:00:00', '2017-11-29 02:00:00', '2017-11-29 04:00:00']

# create the DataFrame
newdf = pd.DataFrame(data, index=index)
newdf.columns = ['event_date']

newdf['event_date'] = pd.to_datetime(newdf['event_date'])
newdf.groupby(level=0)['event_date'].diff()

enter image description here