Python:将目录和文件名存储为数据框列

Python: Store directories and filenames as dataframe columns

我想读取每个目录中有多个文件夹和文件的目录的内容,并将文件夹和文件名指定为 dataframe.E.g 的列的值。目录是 'home',其中有几个文件夹和每个文件夹中的文件。 'folder' 列将重复该特定文件夹中存在的所有文件。输出数据框将是这样的:

Folder  File
a_folder a_file
a_folder b_file
a_folder c_file
b_folder aa_file
b_folder bb_File
b_folder cc_File
etc...

目前我在尝试什么:

import os
import pandas as pd

folders = []
files = []
df = pd.DataFrame(columns=['Folder', 'File'])

for folder in sorted(os.listdir('home')):
    folders.append(folder)  
    for file in sorted(os.listdir('home/'+folder)):
        files.append(file)

df['Folder']=folders
df['File']=files

但显然我的想法有误,因为我得到了值和索引长度之间的不匹配错误。我在这里缺少什么?提前致谢!

我认为您需要创建 tuplesfolder-file,然后创建 DataFrame:

data = []
for folder in sorted(os.listdir('home')):
    for file in sorted(os.listdir('home/'+folder)):
        data.append((folder, file))

df = pd.DataFrame(data, columns=['Folder', 'File'])
print (df)
     Folder     File
0  a_folder   a_file
1  a_folder   b_file
2  a_folder   c_file
3  b_folder  aa_file
4  b_folder  bb_file
5  b_folder  cc_file