【发布时间】:2021-09-14 06:06:16
【问题描述】:
我有一个跨列和列内混合日期格式的数据框。尝试将它们从对象转换为日期时间类型时,由于 date1 列具有混合格式,我收到错误消息。在这种情况下,我看不出如何解决它。另外,如何从两列(date1 和 date2)中删除秒数?
这是我尝试的代码:
df = pd.DataFrame(np.array([[10, "2021-06-13 12:08:52.311 UTC", "2021-03-29 12:44:33.468"],
[36, "2019-12-07 12:18:02 UTC", "2011-10-15 10:14:32.118"]
]),
columns=['col1', 'date1', 'date2'])
df
>>
col1 date1 date2
0 10 2021-06-13 12:08:52.311 UTC 2021-03-29 12:44:33.468
1 36 2019-12-07 12:18:02 UTC 2011-10-15 10:14:32.118
# Converting from object to datetime
df["date1"]= pd.to_datetime(df["date1"], format="%Y-%m-%d %H:%M:%S.%f UTC")
df["date2"]= pd.to_datetime(df["date2"], format="%Y-%m-%d %H:%M:%S.%f")
>>
ValueError: time data '2019-12-07 12:18:02 UTC' does not match format '%Y-%m-%d %H:%M:%S.%f UTC' (match)
【问题讨论】:
-
df["date1"]= pd.to_datetime(df["date1"].str.strip('UTC'), format="%Y-%m-%d %H:%M:%S.%f", utc = True)??或df["date1"]= pd.to_datetime(df["date1"], infer_datetime_format =True) -
这行得通,但最终放置的 .%f 值与之前的行相同。这就是为什么我一直想知道简单地删除两列的秒数是否会更方便。这怎么可能做到?
标签: pandas dataframe datetime format timezone