当前位置: 首页 > 面试题库 >

熊猫读取json不适用于MultiIndex

郎鸿朗
2023-03-14
问题内容

我试图读取通过df.to_json()via
创建的数据框,pd.read_json但得到了ValueError。我认为这可能与索引为MultiIndex的事实有关,但我不确定如何处理。

调用了55k行的原始数据框,psitest.json通过以下方式创建了该数据框:

psi.head().to_json('test.json')

print psi.head().to_string()如果要使用它,这是输出。

当我对这小部分数据(5行)进行处理时,我得到一个ValueError

! wget --no-check-certificate https://gist.githubusercontent.com/olgabot/9897953/raw/c270d8cf1b736676783cc1372b4f8106810a14c5/test.json
import pandas as pd
pd.read_json('test.json')

这是完整的堆栈:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-14-1de2f0e65268> in <module>()
      1 get_ipython().system(u' wget https://gist.githubusercontent.com/olgabot/9897953/raw/c270d8cf1b736676783cc1372b4f8106810a14c5/test.json'>)
      2 import pandas as pd
----> 3 pd.read_json('test.json')

/home/obot/virtualenvs/envy/lib/python2.7/site-packages/pandas/io/json.pyc in read_json(path_or_buf, orient, typ, dtype, convert_axes, convert_dates, keep_default_dates, numpy, precise_float, date_unit)
    196         obj = FrameParser(json, orient, dtype, convert_axes, convert_dates,
    197                           keep_default_dates, numpy, precise_float,
--> 198                           date_unit).parse()
    199 
    200     if typ == 'series' or obj is None:

/home/obot/virtualenvs/envy/lib/python2.7/site-packages/pandas/io/json.pyc in parse(self)
    264 
    265         else:
--> 266             self._parse_no_numpy()
    267 
    268         if self.obj is None:

/home/obot/virtualenvs/envy/lib/python2.7/site-packages/pandas/io/json.pyc in _parse_no_numpy(self)
    481         if orient == "columns":
    482             self.obj = DataFrame(
--> 483                 loads(json, precise_float=self.precise_float), dtype=None)
    484         elif orient == "split":
    485             decoded = dict((str(k), v)

ValueError: No ':' found when decoding object value

> /home/obot/virtualenvs/envy/lib/python2.7/site-packages/pandas/io/json.py(483)_parse_no_numpy()
    482             self.obj = DataFrame(
--> 483                 loads(json, precise_float=self.precise_float), dtype=None)
    484         elif orient == "split":

但是,当我在整个数据帧(55k行)上执行此操作时,我得到一个无效的指针错误,并且IPython内核死亡。有任何想法吗?

编辑:首先添加了如何生成json。


问题答案:

这尚未实现ATM,请在此处查看问题:https :
//github.com/pydata/pandas/issues/4889。

您可以简单地首先重置索引,例如

df.reset_index().to_json(...)

它会工作。



 类似资料:
  • 我一直在使用Pandas/Python在Windows中读取以制表符分隔的数据文件,没有任何问题。该数据文件在前三行中包含注释,随后是标题。 我现在试图阅读这个文件与我的Mac。我第一次在Mac上使用Python。)我得到以下错误。 如果将read_csv的error_bad_lines参数设置为False,我将获得以下信息,这些信息将一直持续到最后一行的末尾。 我需要为编码参数指定一个值吗?似乎

  • 问题内容: 我很好奇如何使用熊猫读取以下结构的嵌套json: 这使数组保持为json。我宁愿将其扩展为列。 感谢您的第一个答案。我应该提一下我的问题:数组中嵌套属性的拼合不是强制性的。仅将[A,B,C]连接df.locations [‘name’]就可以了。 我的文件包含多个JSON对象(每行1个),我想保留number,date,name和location列。但是,我需要加入这些地点。 我在这里

  • 问题内容: 我正在使用python 3.6并尝试使用以下代码将json文件(350 MB)下载为pandas数据框。但是,出现以下错误: 我该如何解决错误? 问题答案: 如果以二进制()格式打开文件,则会得到字节。怎么样:

  • 背景: 最近我一直在开发一个程序,该程序对输入数据文件(用户以完整路径或名称的形式给出,如果它位于程序创建的名为inputFiles的文件夹中)执行一些数据分析并吐出一堆输出数据文件(使用CSV)。 问题: 我遇到的问题是,当我运行时。jar在我的Windows机器上,它将创建3个文件夹(InputFiles、TempFiles和OutPutFiles),但当程序在Mac上时,GUI会启动,但不会

  • 问题内容: 我正在查询一个SQL数据库,我想使用熊猫来处理数据。但是,我不确定如何移动数据。以下是我的输入和输出。 问题答案: 答案更简短

  • 演示代码和显示颜色差异的在线Jupyter笔记本位于:https://anaconda.org/walter/pandas_seaborn_color/notebook 当我使用dataframe方法绘制条形图时,颜色是错误的。Seaborn改进了matplotlib的调色板。matplotlib中的所有绘图自动使用新的Seaborn调色板。但是,数据帧中的条形图将恢复为非Seaborn颜色。这种