我想在pandas数据框中创建一个列,它是timedelta列中天数的整数表示。是否可以使用'datetime.days'或者我需要做更多手动的事情吗?
timedelta专栏
7天,23:29:00
天整数列
7
答案 0 :(得分:88)
答案 1 :(得分:60)
你可以这样做,其中td
是你的一系列timedeltas。该部门将纳秒级别转换为日期增量,并且转换为int将降至整天。
import numpy as np
(td / np.timedelta64(1, 'D')).astype(int)
答案 2 :(得分:10)
Timedelta对象具有只读实例属性.days
,.seconds
和.microseconds
。
答案 3 :(得分:1)
如果问题不只是“如何访问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')
答案 4 :(得分:1)
我认为这样做更容易(其中 dif
是日期之间的差异):
dif_In_Days = dif.days
答案 5 :(得分:0)
最简单的方法是通过
df["DateColumn"] = (df["DateColumn"]).dt.days