Python:在数据帧中将timedelta转换为int

Asa*_*ish 83 python timedelta pandas

我想在pandas数据框中创建一个列,它是timedelta列中天数的整数表示.是否可以使用'datetime.days'或者我需要做更多手动的事情吗?

timedelta专栏

7天,23:29:00

日整数列

7

abe*_*bop 106

使用该dt.days属性.假设td是timedelta系列的名称,请通过以下方式访问此属性:

td.dt.days
Run Code Online (Sandbox Code Playgroud)

您也可以以相同的方式获取seconds和microseconds属性.

  • 我喜欢这个评论的简单性,不需要导入另一个库. (8认同)

chr*_*isb 62

你可以这样做,td你的系列timedeltas在哪里.该部门将纳秒级别转换为日期增量,并且转换为int将降至整天.

import numpy as np

(td / np.timedelta64(1, 'D')).astype(int)
Run Code Online (Sandbox Code Playgroud)


小智 16

如果问题不仅仅是“如何访问 timedelta 的整数形式?” 但是“如何将数据帧中的 timedelta 列转换为 int?” 答案可能略有不同。除了访问.dt.days器之外,您还需要df.astype或pd.to_numeric

这些选项中的任何一个都应该有帮助:

df['tdColumn'] = pd.to_numeric(df['tdColumn'].dt.days, downcast='integer')
Run Code Online (Sandbox Code Playgroud)

或者

df['tdColumn'] = df['tdColumn'].dt.days.astype('int16')
Run Code Online (Sandbox Code Playgroud)


Qia*_*ang 15

Timedelta对象具有只读实例属性.days,.seconds和.microseconds.


Yau*_*ich 5

一个很好的方法是

dif_in_days = dif.days (dif日期之间的差异在哪里)