简体   繁体   English

将日期时间列表转换为 int

[英]Converting list of datetimes to int

I have a pandas column that looks like this:我有一个如下所示的 Pandas 列:

df3[['days_till_all_arrive']]

Int64Index([-7, 92], dtype='int64')
Int64Index([-20], dtype='int64')
Int64Index([83, 83], dtype='int64')
Int64Index([83, 83], dtype='int64')
Int64Index([92], dtype='int64')
...
Int64Index([91], dtype='int64')
Int64Index([91], dtype='int64')
Int64Index([91], dtype='int64')
Int64Index([92], dtype='int64')
Int64Index([92], dtype='int64')

It gets created with a function它是用一个函数创建的

def days_till_arrival(df):
    res = []
    for item in df['ETA']:
        item = pd.to_datetime(item)
        res.append((item - datetime.now()).astype('timedelta64[D]'))
    
    return res

ETA is a list of date values. ETA是日期值列表。 I use it like so:我像这样使用它:

df3['days_till_all_arrive'] = days_till_arrival(df3)

I want the values to be normal lists like so:我希望这些值是普通列表,如下所示:

df3[['days_till_all_arrive']]

[-7, 92]
[-20]
[83, 83]
[83, 83]
[92]
...
[91]
[91]
[91]
[92]
[92]

I use .astype('timedelta64[D]') on a single value and it does convert it to the value I want of days, but when I use it in that function for multiple values I get more than [-7, 92], instead I get Int64Index([-7, 92], dtype='int64') .我在单个值上使用.astype('timedelta64[D]')并将其转换为我想要的天数,但是当我在该函数中将它用于多个值时,我得到的结果超过 [-7, 92] ,而不是我得到Int64Index([-7, 92], dtype='int64')

How can I achieve that?我怎样才能做到这一点?

listTimedelta.days一起Timedelta.days

res.append(list((item - datetime.now()).days))

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM