目前,我正在使用for循环从文件夹中读取csv文件。读取csv文件后,我将数据存储在字典的一行中。当我使用" print (list_of_dfs.dtypes)“打印数据类型时,我会收到:
类型:对象日期时间:对象值: float64 ID : int64 ID名称: object。
请注意,这是一个嵌套字典,每个数据字段中都存储了数千个值。我有上面列出的26行结构。我试图将字典行附加到dataframe中,其中只有1行由数据字段组成:
索引日期时间值ID ID名称。
注意:我正在学习巨蟒。我尝试使用一个数组来存储数据,然后将数组转换成一个dataframe,但是我无法附加数据的行。
使用字典方法,我尝试了"df = pd.Dataframe(list_of_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了。
发布于 2019-08-23 19:30:49
这个错误的发生是因为熊猫需要一个指数。一开始,这似乎有点令人困惑,因为您会想到列表索引。这实际上要求的是每个字典对应于每个字典的列号。您可以这样设置:
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)发布于 2021-01-01 13:24:23
根据您的需要,一个简单的解决方法可以是:
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发布于 2020-09-19 19:49:59
不幸的是,熊猫在创建DataFrame时总是需要一个索引。您可以自己设置它,也可以使用具有以下结构的对象,这样熊猫就可以确定索引本身:
data= {'a':[1],'b':[2]}因为在你的情况下编辑数据并不容易,
hacky解决方案是将数据打包到列表中。
dataframe = pd.DataFrame([list_of_dfs])https://stackoverflow.com/questions/57631895
复制相似问题