我正在努力完成一项明显简单的任务,希望在这里找到一些帮助!
我有类似以下数据框的内容。
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时,我无法重命名这些部分。
我想留在“熊猫世界”,因为这是一项大数据任务。