pandas.to_json 以特定形式输出日期格式

Posted

技术标签:

【中文标题】pandas.to_json 以特定形式输出日期格式【英文标题】:pandas.to_json output date format in specific form 【发布时间】:2019-03-14 19:37:48 【问题描述】:

dataframe中日期的原始形式为:

Date                                                                   
2018-09-17          12.83  12.92  12.38  12.65         12.65  1937329.0
2018-09-10          12.92  13.12  12.81  12.83         12.83  1150470.0

转成json后df.to_json(orient='index',date_format='iso') 它看起来像这样:

"2018-09-17T00:00:00Z":"

有什么办法解决这个问题?

【问题讨论】:

【参考方案1】:

最简单的解决方法是首先将您的 datetime 系列转换为 object dtype 系列字符串:

df['Date'] = df['Date'].dt.strftime('%Y-%m-%d')

我建议您仅将其作为 json 转换之前的最后一步,因为您会失去矢量化计算的好处,并且可能会看到内存使用效率较低。

【讨论】:

【参考方案2】:

您也可以使用此替代方法:

df = pd.read_json('test.json')
df['date_hour'] = [datetime.strptime(date[0:10],'%Y-%m-%d').date() for date in 
df['date_hour']]

您可以在我的回答中阅读更多关于类似主题的信息 - https://***.com/a/56280982/11222127

【讨论】:

【参考方案3】:

第一个是如果您在这部分中遇到错误“.dt.strftime('%m-%d-%Y')”

df['date'] = pd.to_datetime(df['date'], errors='coerce')
df['date'] = df['date'].dt.strftime('%m-%d-%Y')

【讨论】:

以上是关于pandas.to_json 以特定形式输出日期格式的主要内容,如果未能解决你的问题,请参考以下文章