当前位置: 首页 > 知识库问答 >
问题:

熊猫read_json:"如果使用所有标量值,则必须传递索引"

曹凯泽
2023-03-14

我在导入带有熊猫的JSON文件时遇到了一些困难。

import pandas as pd
map_index_to_word = pd.read_json('people_wiki_map_index_to_word.json')

这是我得到的错误:

ValueError: If using all scalar values, you must pass an index

文件结构简化如下:

{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}

它来自Coursera上的华盛顿大学机器学习课程。你可以在这里找到文件。

共有3个答案

伯博
2023-03-14

我认为现在发生的事情是

map_index_to_word = pd.read_json('people_wiki_map_index_to_word.json')

正在作为字符串而不是json读取

{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}

其实是

'{"biennials": 522004, "lb915": 116290, "shatzky": 127647, "woode": 174106, "damfunk": 133206, "nualart": 153444, "hatefillot": 164111, "missionborn": 261765, "yeardescribed": 161075, "theoryhe": 521685}'

因为一个字符串是一个标量,它希望你把它作为一个json加载,你必须把它转换成一个判决,这正是另一个响应正在做的事情

最好的方法是在字符串上做一个json加载,将其转换为一个判决,并将其加载到熊猫中

myfile=f.read()
jsonData=json.loads(myfile)
df=pd.DataFrame(data)
费凯康
2023-03-14

您可以按照@ayhan的说明操作,这将为您提供一个柱基格式

或者,您可以将对象括在[](源)中,如下所示,以提供一种行格式,如果您正在加载多个值并计划将矩阵用于机器学习模型,这将非常方便。

df = pd.DataFrame([data])
陶炫明
2023-03-14

尝试

ser = pd.read_json('people_wiki_map_index_to_word.json', typ='series')

该文件仅包含值为标量的键值对。您可以使用ser将其转换为数据帧。到帧(“计数”)

import json
with open('people_wiki_map_index_to_word.json', 'r') as f:
    data = json.load(f)

现在数据是一本字典。您可以将其传递给数据帧构造函数,如下所示:

df = pd.DataFrame({'count': data})
 类似资料:
  • 问题内容: 我在导入带有熊猫的JSON文件时遇到一些困难。 这是我得到的错误: 文件结构是这样简化的: 它来自Coursera的华盛顿大学的机器学习课程。您可以在这里找到文件。 问题答案: 尝试 该文件仅包含键值为标量的键值对。您可以使用将其转换为数据框。 您还可以执行以下操作: 现在数据就是字典。您可以将其传递给数据框构造函数,如下所示:

  • 在我之前的问题之后,一切都很好,但是当列表很长的时候,它显示了这个错误,这是一个简单的d: 有人知道我怎么修吗?先谢谢你。 NB:我从这里的回答中尝试了几种解决方案,但它们对我不起作用

  • 我想对数据帧应用一个函数,该数据帧为原始数据集中的每一列返回几列。apply函数返回包含列和索引的DataFrame,但仍会引发错误ValueError:如果使用所有标量值,则必须传递索引。 我试着设置输出数据帧的名称,将列设置为多索引,并将索引设置为多索引,但都不起作用。 示例:我有这个输入数据帧 apply_函数如下所示: 这会引发错误: ValueError:如果使用所有标量值,则必须传递索

  • 我在python上运行了以下代码,以便从一开始就检索各种加密货币收盘价。我已使用以下代码成功运行它: 现在,我将其更改如下(包括完整代码),并得到一个ValueError。 [LN1] [LN2] [LN3] [LN4] 我现在得到以下错误: --------------------------------------------------------------------------- Va

  • 目前,我使用for循环从文件夹中读取csv文件。读取csv文件后,我将数据存储到字典的一行中。当我使用"print(list_of_dfs.dtypes)"打印数据类型时,我会收到: 数据类型:对象日期时间:对象值:float64 ID:int64 ID名称:对象。 请注意,这是一个嵌套字典,每个数据字段中存储了数千个值。我有上面列出的26行结构。我试图将字典行附加到一个数据框中,其中我将只有一行

  • 我正在尝试使用python进行web抓取。当我试图创建一个数据帧来存储包含提取信息的变量时,它显示“ValueError:如果使用所有标量值,则必须传递索引”。我已经通过尝试索引查看了此网站中的其他相关帖子,但仍然无法解决此问题。请帮忙。