从不同的输入文件制作输出文件

时间:2018-12-24 08:44:19

标签: python-3.x pandas

我的多个文件具有这样的表:

16,15363,623

46,1001,209

79,74241,372

91,68063,105

57,56049,86

我想为每个文件制作一个输出文件,该文件显示 列的平均值,总和,最大值和最小值。例如(output.txt)-第一列的最大值为:91。是否可以用熊猫制作。以及我如何在这里使用glob模块。

2 个答案:

答案 0 :(得分:1)

您可以使用以下代码遍历文件夹中的文件

import pandas as pd
import os
import glob
os.chdir(r'C:folder_path\')
File_list = glob.glob('*.txt')
for file in FileList:
    df = pd.read_csv(file,sep=",") #or any other seperator, check docs
    df1 = Do Some calculations and save as df1
    df1.to_csv(file[:-4]+'_output.txt',sep=",",index=False)

要获得最大值,最小值,总和,您可以使用df.max()df.min()df.sum()的python函数并将其保存为您希望的样子,例如在df1

答案 1 :(得分:0)

我只是为了回答我的答案,这就是您要寻找的东西

import pandas as pd
import glob
import os

# Read multiple files into one dataframe along with pandas `concat`
# if you have path defined like `/home/data/` then you can use `/home/data/*.csv` otherwise you directly mention the path.

df = pd.concat([pd.read_csv(files, sep=',') for files in glob.glob(path + "/*.csv")],ignore_index=True)  # for csv files

# df = pd.concat([pd.read_csv(files, sep=',') for files in glob.glob(/home/data/*.csv")],ignore_index=True) # direct path to files

df = pd.concat([pd.read_csv(files, sep=',') for files in glob.glob(/home/data/*.txt")],ignore_index=True)   # for txt files

最后,您可以按以下方式打开聚合:

$ df.agg(["sum", "min", "max"])

替代: 将多个文件读入一个数据帧

all_Files = glob.glob('/home/data/*.csv')
# all_Files = glob.glob('/home/data/*.txt')
df = pd.concat((pd.read_csv(files, sep=',') for files in all_Files))
df.agg(["sum", "min" , "max"])