Python 如何从文件夹中读取文件并将数据透视应用于每个文件,以及如何将数据透视帧写入文件夹?
我有一个文件夹,里面有csv文件和表格 我已经确认了我的pivot功能,下面的代码是我需要的: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(
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当我添加完整路径时,它现在打印文件名。但是说文件在打开时不存在。已确认的文件位于文件夹中