小编Rob*_*ein的帖子

Pandas 时间序列:查找会话中的间隙,并使用单独的 ID 命名每个会话/间隙

我正在努力完成一项明显简单的任务,希望在这里找到一些帮助!

我有类似以下数据框的内容。

d = [
['2021-06-01 08:00:00',"A"],
['2021-06-01 09:00:00',"A"],
['2021-06-01 12:00:00',"B"],
['2021-06-01 13:00:00',"B"],
['2021-06-01 18:00:00',"B"],
['2021-06-01 19:00:00',"B"],
['2021-06-01 22:00:00',"C"],
['2021-06-01 23:00:00',"C"]] 

df=pd.DataFrame(data=d, columns=("timestamp", "session"))
Run Code Online (Sandbox Code Playgroud)

我想确定会话大于阈值(例如 1 小时)的时间间隔。
为此目的,不应考虑会话之间的时间间隙,我使用.diff()方法来定位间隙。

df["timestamp"]= pd.to_datetime(df["timestamp"])

df["gap"]=df["timestamp"].diff().dt.seconds > 3600
Run Code Online (Sandbox Code Playgroud)

主要任务是找到会话中的间隙,并通过使用例如重命名部分/会话来将会话切成碎片uuid.uuid4()
在该示例中,它将导致第 5/6 行出现新的会话名称。

我的方法是对独特会话进行迭代,但是当我在“间隙”列中找到True时,我无法重命名这些部分。
我想留在“熊猫世界”,因为这是一项大数据任务。

python datetime time-series dataframe pandas

5
推荐指数
1
解决办法
1158
查看次数

标签 统计

dataframe ×1

datetime ×1

pandas ×1

python ×1

time-series ×1