Python 时间间隔由熊猫中的2个字段划分
我有以下数据框:Python 时间间隔由熊猫中的2个字段划分,python,python-2.7,pandas,Python,Python 2.7,Pandas,我有以下数据框: id datetime interval 0 1 20160101 070000 NaN 1 1 20160101 080000 60 2 1 20160102 070000 NaN 3 1 20160102 073000 30 4 2 20160101 071500 NaN 5 2 20160101 071600 1 并且希望生成int
id datetime interval
0 1 20160101 070000 NaN
1 1 20160101 080000 60
2 1 20160102 070000 NaN
3 1 20160102 073000 30
4 2 20160101 071500 NaN
5 2 20160101 071600 1
并且希望生成interval列-行与行之间的分钟数,但仅针对相同的id&同一天,就像在示例中一样-因此在sql中,我将按id和datetime进行分区,并使用LAG作为前一行之间的时间间隔。如何在Pandas中执行此操作?您可以通过以下方式将列
datetime
转换为分钟,并将timedelta
与一起使用:
请提供一张照片,并附上一张照片。按链接“df”@Umen:发布图像没有多大帮助,因为如果有人想复制你的帧,他们必须逐个键入每个字符。另一方面,如果您将其粘贴为文本,则人们可以使用
read\u剪贴板
重现您的条件。
print df
id datetime interval
0 1 20160101 070000 NaN
1 1 20160101 080000 60
2 1 20160102 070000 NaN
3 1 20160102 073000 30
4 2 20160101 071500 NaN
5 2 20160101 071600 1
df['datetime'] = pd.to_datetime(df['datetime'])
df['new']=df.groupby(['id',df['datetime'].dt.day])['datetime'].diff().astype('timedelta64[m]')
print df
id datetime interval new
0 1 2016-01-01 07:00:00 NaN NaN
1 1 2016-01-01 08:00:00 60 60
2 1 2016-01-02 07:00:00 NaN NaN
3 1 2016-01-02 07:30:00 30 30
4 2 2016-01-01 07:15:00 NaN NaN
5 2 2016-01-01 07:16:00 1 1