首页 > 解决方案 > JSON 到 Pandas 数据框类型的更改

问题描述

我有来自 python 中 m3inference 包的 JSON 输出,如下所示:

{'input': {'description': 'Bundeskanzlerin',
       'id': '2631881902',
       'img_path': '/root/m3/cache/angelamerkeicdu_224x224.jpg',
       'lang': 'de',
       'name': 'Angela Merkel',
       'screen_name': 'angelamerkeicdu'},
 'output': {'age': {'19-29': 0.0,
                '30-39': 0.0001,
                '<=18': 0.0001,
                '>=40': 0.9998},
        'gender': {'female': 0.9991, 'male': 0.0009},
        'org': {'is-org': 0.0032, 'non-org': 0.9968}}}

我将其存储在:

org = pd.DataFrame.from_dict(json_normalize(org['output']), orient='columns')

        gender.male  gender.female  age.<=18  ...  age.>=40  org.non-org  org.is-org
    0       0.0009         0.9991    0.0000  ...    0.9998       0.9968      0.0032

我不知道0第一列中的值来自哪里,我将org.isorg列保存到 isorg

isorg = org['org.is-org']

但是当我将它附加到熊猫数据框 dtypes is object 时,值更改为

0 0.0032 Name: org.is-org, dtype: float64

不是0.0032

如何解决这个问题?

标签: pythonjsonpandasdataframe

解决方案


“我不知道第一列中的 0 值来自哪里,然后我将 org.isorg 列保存到 isorg”

该“0”是您的数据框的索引。除非您指定数据框索引,否则 pandas 将自动创建索引。您可以改为更改索引。

代码示例:

org.set_index('gender.male', inplace=True)

索引就像您的数据的地址。这是可以访问数据框或系列中的任何数据点的方式。


推荐阅读