Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/71.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 对熊猫进行时间间隔分析的最佳方法是什么?_Python_Pandas_Statistics - Fatal编程技术网

Python 对熊猫进行时间间隔分析的最佳方法是什么?

Python 对熊猫进行时间间隔分析的最佳方法是什么?,python,pandas,statistics,Python,Pandas,Statistics,我试图找到用Python和Pandas进行简单时间间隔分析的最佳方法。这只是为了好玩,所以请随意解释答案,以帮助我了解更多 我从生成一些随机数据开始。首先是时间戳频率为20秒的日期,在2个用户的4个会话的总周期内。用户是123和345 这里的模拟是每20秒一次的快照,以查看用户是否在线 import pandas as pd session_one = pd.date_range('2016-01-01', periods=100, freq='20S') session_two = pd.d

我试图找到用Python和Pandas进行简单时间间隔分析的最佳方法。这只是为了好玩,所以请随意解释答案,以帮助我了解更多

我从生成一些随机数据开始。首先是时间戳频率为20秒的日期,在2个用户的4个会话的总周期内。用户是123和345

这里的模拟是每20秒一次的快照,以查看用户是否在线

import pandas as pd

session_one = pd.date_range('2016-01-01', periods=100, freq='20S')
session_two = pd.date_range('2016-02-01', periods=75, freq='20S')
session_three = pd.date_range('2016-01-01', periods=125, freq='20S')
session_four = pd.date_range('2016-02-01', periods=25, freq='20S')

user_one = [session_one, session_two]
user_two = [session_three, session_four]

data = []

for sessions in user_one:
    for dates in sessions:
        data.append([123,dates])

for sessions in user_two:
    for dates in sessions:
        data.append([345,dates])

# Make our dataframe with our randomly generated data
df = pd.DataFrame(data=data, columns=['ID', 'Timestamp'])
努力实现

我想测量每个用户记录之间的时间间隔,并将其追加到记录上

SQL方法

我有一个很好的SQL方法,但似乎不能复制相互连接的数据集,并用Pandas正确地抵消时间。例如,像这样进行熊猫合并(联接):

df['Timestamp'] + datetime.timedelta(0,20)
我认为您需要通过每个
UserID
使用:


耶稣是多么容易。邦基不确定,因为这个问题似乎更复杂。祝你好运是的,没想到.diff()会在下一条记录上迭代以显示时间差,而不是像SQL中那样必须旋转时间来执行DATEDIFF(秒,字段1,字段2)。不,答案是正确的。正在等待Stack让我检查它。:)@jezrael如果我们使用的是一个系列对象而不是一个以“时间戳”为索引的数据帧,即:
pd.Series(df['UserID'].values,index=pd.to_datetime(df['date']))
df['diff'] = df.groupby('UserID')['Timestamp'].diff()