Pandas to_json更改数据类型

2024-05-13 18:55:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我注意到了这种行为,不确定是虫子。 我创建了一个包含2个整型列和1个浮点列的数据帧

import pandas as pd
df = pd.DataFrame([[1,2,0.2],[3,2,0.1]])
df.info()


<class 'pandas.core.frame.DataFrame'>
Int64Index: 2 entries, 0 to 1
Data columns (total 3 columns):
0    2 non-null int64
1    2 non-null int64
2    2 non-null float64
dtypes: float64(1), int64(2)

如果我将其输出到Json,那么dtype信息将丢失:

^{pr2}$

所有数据都转换为浮点。例如,如果一列包含ns时间戳,这是一个问题,因为它们被转换成指数表示法,并且次秒级的信息丢失。在

我也在这里提交了这个问题:https://github.com/pydata/pandas/issues/7583

我期待的结果是:

'[{"0":1,"1":2,"2":0.2},{"0":3,"1":2,"2":0.1}]'

Tags: columns数据import信息dataframepandasdfas
1条回答
网友
1楼 · 发布于 2024-05-13 18:55:03

一种方法是使用object dtype查看DataFrame列:

In [11]: df1 = df.astype(object)

In [12]: df1.to_json()
Out[12]: '{"0":{"0":1,"1":3},"1":{"0":2,"1":2},"2":{"0":0.2,"1":0.1}}'

In [13]: df1.to_json(orient='records')
Out[13]: '[{"0":1,"1":2,"2":0.2},{"0":3,"1":2,"2":0.1}]'

相关问题 更多 >