将多个ISO时间列复制到\u datetime

2024-09-29 06:32:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我有多个包含ISO数据字符串的列,如

"CreateDate": "2020-04-30T06:12:29.424Z", "ApprovedDate": "2020-04-30T06:21:30.504Z"

当我用

df['CreateDate'] = pd.to_datetime(df['CreateDate'], infer_datetime_format=True, utc=True)

它很好用。但是

df[['CreateDate', 'ApprovedDate']] = pd.to_datetime(df[['CreateDate', 'ApprovedDate']], infer_datetime_format=True, utc=True)

给我

ValueError: to assemble mappings requires at least that [year, month, day] be specified: [day,month,year] is missing

有没有办法解决这个问题?尝试了所有的日期时间选项,但没有成功


Tags: to数据trueformatdfdatetimeisoyear
1条回答
网友
1楼 · 发布于 2024-09-29 06:32:50

因为您有很好的ISO格式字符串,所以不需要使用任何关键字调用to_datetime。因此,一个简单的apply应该是一个选项:

import pandas as pd
df = pd.DataFrame({"CreateDate": ["2020-04-30T06:12:29.424Z"], 
                   "ApprovedDate": ["2020-04-30T06:21:30.504Z"]})

df[['CreateDate', 'ApprovedDate']] = df[['CreateDate', 'ApprovedDate']].apply(pd.to_datetime)
# df
#                         CreateDate                     ApprovedDate
# 0 2020-04-30 06:12:29.424000+00:00 2020-04-30 06:21:30.504000+00:00

相关问题 更多 >