Python 如何从文件夹中读取文件并将数据透视应用于每个文件,以及如何将数据透视帧写入文件夹?

Python 如何从文件夹中读取文件并将数据透视应用于每个文件,以及如何将数据透视帧写入文件夹?,python,python-3.x,pandas,pivot-table,Python,Python 3.x,Pandas,Pivot Table,我有一个文件夹,里面有csv文件和表格 我已经确认了我的pivot功能,下面的代码是我需要的: cols = df.columns.difference(['FieldTitle','Value']).tolist() pivoted_df = pd.pivot_table(df.fillna('missing'), index=cols, columns='FieldTitle', values='Value', aggfunc='first').reset_index().replace(

我有一个文件夹,里面有csv文件和表格

我已经确认了我的pivot功能,下面的代码是我需要的:

cols = df.columns.difference(['FieldTitle','Value']).tolist()

pivoted_df = pd.pivot_table(df.fillna('missing'), index=cols, columns='FieldTitle', values='Value', aggfunc='first').reset_index().replace('missing', np.nan)
如何将这两行代码应用于文件夹中的每个文件,同时将
pivoted_df
写入另一个文件夹

我尝试了此代码,但无法让pandas读取文件以进行操作:

import os
import pandas as pd
import numpy as np

directory = os.path.join('~/Desktop/folder_path')
for root,dirs,files in os.walk(directory):
    for file in files:
       if file.endswith(".csv"):
           f=open(file, 'r')
           for i in f:
               df = pd.read_csv(i)
               cols = df.columns.difference(['FieldTitle','Value']).tolist()
               pivoted_df = pd.pivot_table(df.fillna('missing'), index=cols, \
                                           columns='FieldTitle', values='Value', \
                                           aggfunc='first').\
                                           reset_index().replace('missing', np.nan)

               pivoted_df.to_csv('~/Desktop/folder_path/file_name_{}'.format(file))

           f.close()

windows需要双“\”,因此路径为“C:\\Users\\Person\\Desktop\\test”

打开文件时,需要将文件名和路径组合在一起

for root,dirs,files in os.walk(directory):
    for file in files:
       if file.endswith(".csv"):
           f=open(file, 'r')
file
变量只保存文件名,而不是完整路径。而且,由于文件不在当前工作目录中,因此需要路径。解决方案是将其更改为:

for root,dirs,files in os.walk(directory):
    for file in files:
       if file.endswith(".csv"):
           f = open(os.path.join(directory, file))

os.path.join()?您是否已确认它已正确地通过该文件夹访问?例如,让它打印出文件名,并确保它正在查找文件。它不会给我任何错误或打印文件名。我也试过了。如果你只是在“if file.endswith(“.csv”)”的正上方添加一个打印(文件)并注释掉其余部分,你仍然一无所获吗?@Jacobr365仍在获取nothing@Jacobr365当我添加完整路径时,它现在打印文件名。但是说文件在
打开时不存在。已确认的文件位于文件夹中