如何区分 pandas DataFrame 列中的 datetime.times
How to take difference between datetime.times in a pandas DataFrame column
我有一段时间的df:
import datetime as dt
import pandas as pd
data = [dt.time(0,0,10), dt.time(0,24,30), dt.time(4,20,12)]
df = pd.DataFrame(data, columns=['times'])
我如何使用 .diff() 中的逻辑来获取日期时间的差异,如下所示,其中 'gap' 行中的第一个条目将为空白,下一个将是第二个之间的差异行和第一行的 'time' 值,等等?
df['gap'] = df['times'].diff()
截至目前,我遇到了一个错误
"unsupported operand type(s) for -: 'datetime.time' and
'datetime.time'
您必须将 data
转换为 datetime.datetime
的列表:
data = [dt.time(0,0,10), dt.time(0,24,30), dt.time(4,20,12)]
data = [dt.datetime.combine(dt.date.today(), d) for d in data]
df = pd.DataFrame(data, columns=['times'])
df.times.diff()
输出
0 NaT
1 0 days 00:24:20
2 0 days 03:55:42
我有一段时间的df:
import datetime as dt
import pandas as pd
data = [dt.time(0,0,10), dt.time(0,24,30), dt.time(4,20,12)]
df = pd.DataFrame(data, columns=['times'])
我如何使用 .diff() 中的逻辑来获取日期时间的差异,如下所示,其中 'gap' 行中的第一个条目将为空白,下一个将是第二个之间的差异行和第一行的 'time' 值,等等?
df['gap'] = df['times'].diff()
截至目前,我遇到了一个错误
"unsupported operand type(s) for -: 'datetime.time' and 'datetime.time'
您必须将 data
转换为 datetime.datetime
的列表:
data = [dt.time(0,0,10), dt.time(0,24,30), dt.time(4,20,12)]
data = [dt.datetime.combine(dt.date.today(), d) for d in data]
df = pd.DataFrame(data, columns=['times'])
df.times.diff()
输出
0 NaT
1 0 days 00:24:20
2 0 days 03:55:42