我有以下格式的文件字典:
{'filea': ['test/folder2/filea', 'test/folder3/filea', 'test/folder1/filea'],
'fileb': ['test/folder2/fileb', 'test/folder3/fileb', 'test/folder1/fileb'],
'filec': ['test/folder2/filec', 'test/folder3/filec', 'test/folder1/filec']}
并且我创建了一个for循环来遍历每个文件名,并创建一个数据框,该数据框组合了与上面字典中每个键对应的文件,但是当我运行我的循环时,在这种情况下,下一个fileb将被追加到数据框中为文件a创建。我不确定如何解决此问题,因为我花了几个小时无法解决此问题,也可能是因为我之间有一段很长的代码来了解缩进的错误所在。我的代码如下:
可以说上面的字典叫做file_list
for key,files in file_list.items():
#dataset = pd.Dataframe()
for i in files: #loop over the files in each key
#do something....
df = pd.DataFrame({'A':B,'C':D,'E':F})
print('This dataframe has the shape:',df.shape)
#save dataframe
df.to_hdf('xxx.hdf'.format(key[0:-4]),mode='w', key='df')
我仍然看不到我的错误在哪里,因为当循环对fileb中的文件起作用时,它被追加到具有来自filea数据的数据帧中,而不是为fileb创建全新的数据帧。 非常感谢您提供任何帮助!
答案 0 :(得分:0)
当我运行循环时,在这种情况下,下一个fileb被追加到为文件a创建的数据框中。
大概您只在外部B
循环之前初始化D
,F
和for
一次,因此在每个循环中,从当前周期开始的第一个数据之后被附加到先前周期中的那些。要解决此问题,请在外部B
循环内重置D
,F
和for
。