我想在pandas数据框中创建一个列,该列表示timedelta列中天数的整数。是否可以使用“ datetime.days”,还是我需要做更多手动操作?
timedelta列
7天23:29:00
天整数列
7
我想在pandas数据框中创建一个列,该列表示timedelta列中天数的整数。是否可以使用“ datetime.days”,还是我需要做更多手动操作?
timedelta列
7天23:29:00
天整数列
7
Answers:
您可以这样做,td
您的一系列时间增量在哪里。该除法将纳秒增量转换为天增量,并且转换为int的时间减少为整天。
import numpy as np
(td / np.timedelta64(1, 'D')).astype(int)
/
之间的作用是什么?td
np
如果问题不仅仅在于“如何访问timedelta的整数形式?” 但是“如何将数据帧中的timedelta列转换为int?” 答案可能有所不同。除了访问.dt.days
器,您还需要df.astype
或者pd.to_numeric
这些选项中的任何一个都可以帮助:
df['tdColumn'] = pd.to_numeric(df['tdColumn'].dt.days, downcast='integer')
要么
df['tdColumn'] = df['tdColumn'].dt.days.astype('int16')
timedelta64[ns]
。如果您的日期是NaN,请先使用pandas to_datetime
函数将其转换为datetime ,然后使用上面的第二个选项。有关更多详细信息,请检出to_datetime
timedelta.days
吗?