问题描述
我有一个数据框列,其中包含随机时间戳和 NaT 值:
timestamp
01-01-2018 13:12:48
NaT
NaT
NaT
04-01-2018 08:15:12
NaT
Nat
我想创建另一个列,一旦时间戳列 (col_A) 中有新的时间戳,它就会从 0 开始计数。 我不介意该列是否是时间戳对象但没有日期(col_B)。 那可能吗?
timestamp col_A col_B
01-01-2018 13:12:48 0 00:00:00
NaT 1 00:01:00
NaT 2 00:02:00
NaT 3 00:03:00
04-01-2018 08:15:12 0 00:00:00
NaT 1 00:01:00
Nat 2 00:02:00
1楼
这是一个孤岛问题:每次timestamp
不为空时,它都会创建一个新的孤岛。
您通常使用某种累积和来解决这些问题。
尝试这个:
islands = df['timestamp'].notnull().cumsum()
df['col_A'] = df.groupby(islands).cumcount()
df['col_B'] = pd.to_timedelta(df['col_A'], unit='minute')