如何正确地将数据帧的所有日期时间列转换为 iso 格式

Posted

技术标签:

【中文标题】如何正确地将数据帧的所有日期时间列转换为 iso 格式【英文标题】:How to correctly convert all datetime columns of a dataframe into iso format 【发布时间】:2020-09-29 06:31:45 【问题描述】:

具有多个从不同来源聚合的日期时间列的数据框格式不一致。 如何正确地将所有日期时间列转换为 iso 格式?

目前,我最好的解决方案是使用date_format='iso' 将数据帧转换为json:

json_string = my_dataframe.to_json(orient='records', date_format='iso')

并将其转换回数据框:

my_dataframe = pd.read_json(json_string , orient='records')

但在我看来,这个解决方案更像是一个黑客而不是一个合适的解决方案。 如何在不使用 json 的情况下以更专业的方式进行转换

【问题讨论】:

所有列都是日期时间吗? 您是否解析了所有日期时间列to_datetime()?如果是这样,以 ISO 格式输出它们只是 strftime()... 【参考方案1】:

您可以在返回日期时间索引的数据框列上使用pandas.to_datetime()。 You can specify 如何解析特定列的数据或让它根据您选择的参数推断数据格式。

例子:

import pandas as pd

my_dataframe = pd.DataFrame('date': '01/03/12', index = [0])

my_dataframe['date'] = pd.to_datetime(my_dataframe['date'], dayfirst = True)

print(my_dataframe)

输出:

        date
0 2012-03-01

Python格式化代码可以找到here

【讨论】:

以上是关于如何正确地将数据帧的所有日期时间列转换为 iso 格式的主要内容,如果未能解决你的问题,请参考以下文章

将日期转换为 ISO 星期日期

javascript 不能正确地将 angular ui datepicker 日期转换为 UTC

如何将所有日期格式转换为日期列的时间戳?

Javascript:正确地将日期字符串转换为日期对象

Oracle 将 ISO 日期转换为计算机区域设置日期/时间

如何使用 MySqlParameter 有条件地将列设置为其默认值?