繁体   English   中英

熊猫读取JSON导致值转换为科学计数法

[英]Pandas read JSON causes values to convert into scientific notation

我正在使用其中一个列包含27位数字的pandas Dataframe。 我使用以下方法将Dataframe转换为JSON数组:

pd.read_json(df, orient='split')

当将JSON数组转换回Dataframe时,我使用了:

 pd.read_json(df, orient='split')

但是,在转换中,这些值已转换为科学计数法。

Actual: 8.123456e+27
Expected: 8123456342700123300640123456

有办法解决这个问题吗? 抱歉仅提供sudo代码,我正在使用机密信息。

您可以使用

pd.set_option('display.float_format', lambda x: '%d' % x)

例如,使用此样本数据

df = pd.DataFrame([['8123456342700123300640123456']],
                   index=['row'],
                   columns=['col'])
print(df.dtypes)
dx = df.to_json(orient='split')
dg = pd.read_json(dx, orient='split')
print(dg)
print(dg.dtypes)

输出:(注意col float64

col    object
dtype: object
                             col
row 8123456342700123332831870976
col    float64
dtype: object

要将其更改回对象,可以使用

dg = pd.read_json(dx, orient='split').astype(object)
print(dg)
print(dg.dtypes)

输出:

                             col
row 8123456342700123332831870976
col    object
dtype: object

我设法通过在pd.read_json包含一个附加参数来找到解决pd.read_json

pd.read_json(df, orient='split', dtype = {"column_name": object})

我以此为参考

感谢您的所有帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM