gpt4 book ai didi

python - Pandas to_json 改变数据类型

转载 作者:太空狗 更新时间:2023-10-30 00:17:23 25 4
gpt4 key购买 nike

我注意到了这种行为,但不确定这是一个错误。我创建了一个包含 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 信息将丢失:

df.to_json(orient= 'records')

'[{"0":1.0,"1":2.0,"2":0.2},{"0":3.0,"1":2.0,"2":0.1}]'

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

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

我期待的结果是:

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

最佳答案

一种方法是查看具有对象数据类型的 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}]'

关于python - Pandas to_json 改变数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24442340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com