我想在熊猫数据框架中创建一个列,它是一个整数,表示 timedelta 列中的天数。是否可以使用“ datetime.days”,还是需要更多的手动操作?
Timedelta 列
7天23:29:00
天数整数列
7
你可以这样做,其中 td是你的时间三角洲系列。这个除法将纳秒三角洲转换为日三角洲,将整数转换为整天。
td
import numpy as np (td / np.timedelta64(1, 'D')).astype(int)
Series 类有一个 pandas.Series.dt访问器对象和几个 有用的日期时间属性,包括 dt.days。通过以下方式访问该属性:
pandas.Series.dt
dt.days
timedelta_series.dt.days
您还可以以相同的方式获得 seconds和 microseconds属性。
seconds
microseconds
Timedelta 对象具有只读实例属性 .days、 .seconds和 .microseconds。
.days
.seconds
.microseconds
如果问题不仅仅是“如何访问一个整数形式的时间差?”而是“如何将数据框架中的 timedelta 列转换为 int?”答案可能有点不同。除了 .dt.days访问器之外,您还需要 df.astype或 pd.to_numeric
.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')
最简单的方法是
df["DateColumn"] = (df["DateColumn"]).dt.days
最好的办法就是
dif_in_days = dif.days (其中 dif是日期之间的差异)
dif_in_days = dif.days
dif