Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 字典到数据帧错误:“quot;如果使用所有标量值,则必须传递一个索引";_Python_Excel_Pandas_Dataframe_Dictionary - Fatal编程技术网

Python 字典到数据帧错误:“quot;如果使用所有标量值,则必须传递一个索引";

Python 字典到数据帧错误:“quot;如果使用所有标量值,则必须传递一个索引";,python,excel,pandas,dataframe,dictionary,Python,Excel,Pandas,Dataframe,Dictionary,目前,我正在使用for循环从文件夹中读取csv文件。 读取csv文件后,我将数据存储到字典的一行中。 当我使用“打印(列出\u dfs.dtypes)”打印数据类型时,我收到: 数据类型:对象 日期时间:对象 值:64 ID:int64 ID名称:对象 请注意,这是一个嵌套字典,每个数据字段中存储了数千个值。我有上面列出的26行结构。我正在尝试将字典行附加到数据框中,在该数据框中,我只有一行数据字段: 索引日期时间值ID名称 注意:我正在学习python。 我尝试使用数组存储数据,然后将数组转换

目前,我正在使用for循环从文件夹中读取csv文件。 读取csv文件后,我将数据存储到字典的一行中。 当我使用“打印(列出\u dfs.dtypes)”打印数据类型时,我收到:

数据类型:对象 日期时间:对象 值:64 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。

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

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(未经测试)时可能会出现如下情况:


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

    data= {'a':[1],'b:[2]}
由于在您的案例中编辑数据并不容易

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

    dataframe = pd.DataFrame([list_of_dfs])

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

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

我尝试如上所述添加索引,方法是引入索引数组并在for循环中赋值:“index[I]=I”,最后使用索引生成数据帧。但是我收到了错误消息:“传递值的形状是{0},索引暗示{1}。format(传递,暗示)@Lonsdale_Energy,它需要整个列表。请参阅我的编辑。我假设np是numpy。错误”modules'numpy'没有属性'arrange'“啊,这是个打字错误。应该是“阿兰奇”。是的,np是numpy。我已经改变了答案。明白了,我应该知道答案的。这是可行的,但现在我有一个错误:“内置函数或方法”对象不可下标。
print(df)

  col1  col2
0  abc   123