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

数据帧错误字典:"如果使用所有标量值,则必须传递索引"

司徒杜吟
2023-03-14

目前,我使用for循环从文件夹中读取csv文件。读取csv文件后,我将数据存储到字典的一行中。当我使用"print(list_of_dfs.dtypes)"打印数据类型时,我会收到:

数据类型:对象日期时间:对象值:float64 ID:int64 ID名称:对象。

请注意,这是一个嵌套字典,每个数据字段中存储了数千个值。我有上面列出的26行结构。我试图将字典行附加到一个数据框中,其中我将只有一行组成的数据字段:

索引日期时间值ID名称。

注意:我正在学习python。我尝试使用数组存储数据,然后将数组转换为数据帧,但无法附加数据帧的行。

我尝试使用dictionary方法“df=pd.Dataframe(dfs的列表)”,这会抛出一个错误。

list_of_dfs = {} 

for I in range(0,len(regionLoadArray)
list_of_dfs[I] = pd.read_csv(regionLoadArray[I]) 

#regionLoadArray contains my- file names from list directory.

dataframe = pd.DataFrame(list_of_dfs)
#this method was suggested at thispoint.com for nested dictionaries.
#This is where my error occurs^

ValueError:如果使用所有标量值,则必须传递索引

我很感激这个问题的任何帮助,因为我是新的python。我目前的目标是简单地生成一个带有标题的数据帧,然后发送给csv。

共有3个答案

冯育
2023-03-14

不幸的是,熊猫在创建DataFrame时总是需要索引。您可以自己设置它,也可以使用具有以下结构的对象,以便熊猫可以确定索引本身:

    data= {'a':[1],'b':[2]}

因为在你的案例中编辑数据并不容易,

黑客的解决方案是将数据包装到列表中

    dataframe = pd.DataFrame([list_of_dfs])
巫煌
2023-03-14

根据您的需要,一个简单的解决方案可以是:

dct = {'col1': 'abc', 'col2': 123}
dct = {k:[v] for k,v in dct.items()}  # WORKAROUND
df = pd.DataFrame(dct)

这导致了

print(df)

  col1  col2
0  abc   123
李博达
2023-03-14

发生此错误是因为熊猫需要索引。起初,这似乎有点令人困惑,因为您想到的是列表索引。这本质上要求每个字典对应一个列号。您可以这样设置:

import pandas as pd
list = ['a', 'b', 'c', 'd']
df = pd.DataFrame(list, index = [0, 1, 2, 3])

然后,数据框架产生:

   0  
0 'a'
1 'b'
2 'c'
3 'd'

具体来说,使用numpy(未经测试)时可能会出现如下情况:

list_of_dfs = {} 

for I in range(0,len(regionLoadArray)):
    list_of_dfs[I] = pd.read_csv(regionLoadArray[I]) 

ind = np.arange[len(list_of_dfs)]

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

  • 我在导入带有熊猫的JSON文件时遇到了一些困难。 这是我得到的错误: 文件结构简化如下: 它来自Coursera上的华盛顿大学机器学习课程。你可以在这里找到文件。

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

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

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

  • 我试图从Bitfinex交换获取和存储所有历史1分钟蜡烛数据。当尝试将新数据帧附加到现有数据帧时,我会得到这个错误“值错误:如果使用所有标量值,您必须传递一个索引”,尽管在构造函数中传递了一个索引。 我们在这里尝试了解决方案-在DataFrame构造函数中传递索引:从变量中的值构造DataFrame会给出“ValueError:如果使用所有标量值,则必须传递索引”。这可能是很简单的事情,但我们没有