如何处理特定的 json 文件以获得数据框

Posted

技术标签:

【中文标题】如何处理特定的 json 文件以获得数据框【英文标题】:How to deal with a specific json file in order to have a dataframe 【发布时间】:2021-09-17 04:10:17 【问题描述】:

我有一个对象字典(JSON 响应),我想将它转换为 Python 中的数据框。 这是我的 json 示例:

'data': 'id': '3e813eaa-723d-48f9-b5b2-45dde744eba7',
          'type': 'analytics',
          'attributes': 'results': ['publication_datetime': '1983-02',
                                      'count': 2672, 'source_code': 'WP',
                                     'publication_datetime': '2006-10',
                                      'count': 7767, 'source_code': 'WP',
                                     'publication_datetime': '2011-06',
                                      'count': 4800, 'source_code': 'WP',
                                     'publication_datetime': '2013-01',
                                      'count': 5300, 'source_code': 'WP',
                                     'publication_datetime': '2014-11',
                                      'count': 5282, 'source_code': 'WP',
                                     'publication_datetime': '2018-02',
                                      'count': 3663, 'source_code': 'WP',
                                     'publication_datetime': '2020-06',
                                      'count': 3034, 'source_code': 'WP',
                                     'publication_datetime': '2021-06',
                                      'count': 3138, 'source_code': 'WP',
                                     ]

这是一个嵌套列表,我想将其转换为 df,这是输出:

Dataframe output

d = explain_response.json()
df = pd.DataFrame(d['data'])

你知道如何获得这样的 df 吗:

df = pd.DataFrame(columns=["publication_datetime", "count", "source_code"], data=[["2001-11","1", "WP"]])
print(df.head())

【问题讨论】:

【参考方案1】:

IIUC,这是一种方法:

df = pd.DataFrame(d['data']).explode('attributes').pop('attributes').apply(pd.Series).reset_index(drop =True)

输出:

  publication_datetime  count source_code
0              1983-02   2672          WP
1              2006-10   7767          WP
2              2011-06   4800          WP
3              2013-01   5300          WP
4              2014-11   5282          WP
5              2018-02   3663          WP
6              2020-06   3034          WP
7              2021-06   3138          WP

【讨论】:

完美运行,非常感谢!我不知道字典的爆炸和流行,我会去看一些关于它的资料。祝你有美好的一天!

以上是关于如何处理特定的 json 文件以获得数据框的主要内容,如果未能解决你的问题,请参考以下文章

Angularjs如何处理来自php(json)的二维数组

制作决策树时如何处理数据

如何处理多个单独的 json 响应?

出现“需要提供管理员权限来更改这些属性”时,该如何处理?怎样才能获得管理员权限呢?我的系统是win7

机器学习模型如何获得可重复的结果?最佳实践是什么?如何处理random_state参数?

如何处理取消的定期付款