首页 > 解决方案 > 为文件夹中的每个文件夹创建一个数据框(wav 文件)

问题描述

我试图告诉 python 在文件夹中的每个文件夹上迭代一个循环。这是与路径的手动输入一起使用的代码。现在我希望循环完成它的工作,但会自动为每个文件夹自动保存,并将其保存到具有不同名称的单独数据框中。

file_list = []
duration_list = []

for wave_file in glob.glob('path_name\*.wav'):
    sound = parselmouth.Sound(wave_file)
    duration = measurePitch(
        sound, 75, 300, "Hertz")
    file_list.append(wave_file)
    duration_list.append(duration)

# Add the data to Pandas
df = pd.DataFrame(np.column_stack([file_list, duration_list]), columns=['voiceID', 'duration'])

有人对此有解决方案吗?

标签: pythonpandasloopsdataframe

解决方案


这是一种方法,只需将数据框保存在循环中即可。

save_path = "save_path/"
path_name = "C:\\Users\\guest\\Desktop\\test\\"

for index, wave_file in enumerate(glob.glob(f'{path_name}*.wav')):

    sound = parselmouth.Sound(wave_file)

    duration = measurePitch(sound, 75, 300, "Hertz")

    df = pd.DataFrame([[wave_file, duration]], columns=['voiceID', 'duration'])

    df.to_csv(f'{save_path}file_{index+1}.csv', index=False)

推荐阅读