我的多个文件具有这样的表:
16,15363,623
46,1001,209
79,74241,372
91,68063,105
57,56049,86
我想为每个文件制作一个输出文件,该文件显示 列的平均值,总和,最大值和最小值。例如(output.txt)-第一列的最大值为:91。是否可以用熊猫制作。以及我如何在这里使用glob模块。
答案 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"])