我有此数据框,其中包含开始日期和结束日期
,当我使用 to_json 并使用此行
转换为json时json_data = df.to_json(orient='records')
现在,如果我打印 json_data ,开始日期将从 yyyy-mm-dd 转换为整数格式
请提出一种使日期格式保持为 yyyy-mm-dd 格式
的方法答案 0 :(得分:1)
首先设置日期格式,然后将date_format
设置为'iso'
:
df['start_date'] = pd.to_datetime(df['start_date']).dt.strftime('%Y-%m-%d')
df['end_date'] = pd.to_datetime(df['end_date']).dt.strftime('%Y-%m-%d')
data = df.to_json(orient='records', date_format='iso')
print(data)
[{"start_date":"2020-08-10","end_date":"2020-08-16"}]
答案 1 :(得分:1)
将DataFrame.select_dtypes
用于日期时间列,转换为格式YYYy-MM-DD
,最后用DataFrame.update
覆盖原始数据:
df.update(df.select_dtypes('datetime').apply(lambda x: x.dt.strftime('%Y-%m-%d')))
然后您的解决方案可以正常工作:
json_data = df.to_json(orient='records')