【发布时间】:2021-05-29 00:35:42
【问题描述】:
我正在尝试将组号分配给一组内时差较小的行。为此,我尝试使用:
df["Group_id"] = df.groupby("DEVICE")["DATE_EVT"].diff().gt('0 days 00:00:60').cumsum()
但是,diff 会为组中的每个第一个元素创建 nan 值,这有时会导致两个连续组之间的合并。为了用一些较大的值填充 nan 值,我尝试使用:
df["Group_id"] = df.groupby("DEVICE")["DATE_EVT"].diff().fillna('10 days 00:00:00.000000').gt('0 days 00:00:60').cumsum()
但我收到一条错误消息:
TypeError: '>' 在 'Timedelta' 的实例和 'str'
这是数据框的摘录:
组 12877 应该在 DEV1 结束时结束,因为有一个 groupby DEVICE。
【问题讨论】:
-
试试
_.gt(pd.Timedelta('0 days 00:00:60')).cumsum()
标签: python pandas dataframe group-by diff