在多个文件上使用python pandas脚本

时间:2018-06-12 03:51:24

标签: python pandas

我有一个python(pandas)脚本,它将csv文件读入数据帧,编辑它们,并使它们成为新的csv(输出):

import pandas as pd

df = pd.read_csv(r'\filename.csv', sep=',')

# I skipped over the dataframe edits

try:
    df.to_csv(r'outputfilename', sep='\t', encoding='utf-8')    
except IOError as e:
    print('Could not make Excel file' % e)`

我想一次在多个csv文件上使用它并获得多个输出(csv' s):

我试过了:

from tkinter.filedialog import askopenfilename

filename = askopenfilename()

df = pd.read_csv(filename, sep=',')
...

它有效(给我一个选择窗口),但我只能选择一个文件

2 个答案:

答案 0 :(得分:1)

如果一个接一个地执行而不是一次完成所有文件就足够了,请查看glob模块:

<强> 1。创建目标目录中的文件列表

target_directory = r'Path/to/your/dir'
file_list = glob.glob(target_directory + "/*.csv") 
# Include slash or it will search in the wrong directory!

<强> 2。循环浏览列表中的文件并执行您的魔法

for file in file_list:                # Loop files
    df_result = your_function(file)   # Put your logic into a separate function
    new_filename = file.replace('.csv', '_processed.csv')
    df_result.to_csv(new_filename, index = False)

答案 1 :(得分:0)

from tkinter.filedialog import askopenfilename
filename = askopenfilename()

在此代码中,您说'askopenfilename&#39;那就是打开一个文件,你应该打开多个文件,你应该尝试下面的代码

import Tkinter,tkFileDialog
dir = Tkinter.Tk()
mul_file = tkFileDialog.askopenfilenames(parent=dir,title='Choose a 
                                                   multiple file')

&#39; mul_file&#39;将是元组。如果需要,可以通过

将其更改为列表
mul_file=list(mul_file)

这会在循环中的list.iterate列表中提供所有选择的文件并在其中执行csv操作