为了账号安全,请及时绑定邮箱和手机立即绑定

如何将具有多列和索引的JSON字符串转换为熊猫数据帧?

如何将具有多列和索引的JSON字符串转换为熊猫数据帧?

慕仙森 2022-09-27 09:33:19
我需要将具有2列和索引的JSON字符串转换为pandas数据帧,但我遇到错误,找不到解决方案。我试图用不同的方向对JSON进行编码,我还规范化了JSON字符串并指定了列名,但仍然存在错误。看起来有点棘手,我该怎么做?orient='columnsorient='index这是我使用的字符串:> type(data)<class 'str'>> print(data){"2020-04-02T00:00:00.000Z": {    "A": 133.25,    "B": 0.000155642},"2020-04-03T00:00:00.000Z": {    "A": 136.45,    "B": 0.0001498913},"2020-04-04T00:00:00.000Z": {    "A": 141.55,    "B": 0.0001471562}}df = pd.DataFrame.from_dict(data)df = pd.DataFrame.from_dict(json_normalize(data), orient='index', columns=['A', 'B'])蟒蛇抛出一个错误,说.AttributeError: 'str' object has no attribute 'values'我想要的是这样的数据帧:                                A         B2020-04-02 00:00:00+00:00  133.25  0.0001562020-04-03 00:00:00+00:00  136.45  0.0001502020-04-04 00:00:00+00:00  141.55  0.000147谢谢
查看完整描述

1 回答

?
慕慕森

TA贡献1856条经验 获得超17个赞

您可以使用pandas.read_json。从文档中,您可以指定 = 这是字典中预期 JSON 字符串格式的指示,例如orientindex{index -> {column -> value}}


>>> import pandas as pd

>>> data = """

... {

...     "2020-04-02T00:00:00.000Z": {

...         "A": 133.25,

...         "B": 0.000155642

...     },

...     "2020-04-03T00:00:00.000Z": {

...         "A": 136.45,

...         "B": 0.0001498913

...     },

...     "2020-04-04T00:00:00.000Z": {

...         "A": 141.55,

...         "B": 0.0001471562

...     }

... }"""

>>> 

>>> df = pd.read_json(data, orient='index')

>>> df

                                A         B

2020-04-02 00:00:00+00:00  133.25  0.000156

2020-04-03 00:00:00+00:00  136.45  0.000150

2020-04-04 00:00:00+00:00  141.55  0.000147


查看完整回答
反对 回复 2022-09-27
  • 1 回答
  • 0 关注
  • 62 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信