Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 时间间隔由熊猫中的2个字段划分_Python_Python 2.7_Pandas - Fatal编程技术网

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