如何正确地将数据帧的所有日期时间列转换为 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 格式的主要内容,如果未能解决你的问题,请参考以下文章
javascript 不能正确地将 angular ui datepicker 日期转换为 UTC