一、R的处理方法
读取csv最方便了,速度还快,read.csv()。
但是,当你必须读取excel可使用包xlsx,该包的具体介绍参见某大神的文章http://yixuan.cos.name/cn/2012/01/new-method-to-read-excel-file-in-r/
自动读取某文件夹下的文件,R自带的base包就包含很多文件操作的函数。
比如这里需要用到的——list.files(),列出某文件夹下的所有文件,还可以用正则表达式找出你要的文件。
二、python的解决之道
因为xlsx包需要先装rJava包,这个包装的总是各种失败,因此我改用python来处理。
正好最近学习python中,在使用中学习,效果最好。
##### 批量处理excel文件
import pandas as pd
import os
# 整理成一个函数
def foo(dir_str):
## 读取出某文件夹下的所有文件名
file_name = os.listdir(dir_str)
## 得到所有文件的路径
file_dir = [os.path.join(dir_str, x) for x in file_name]
## 读取每一个文件的某个需要计算的列,计算该列的发生次数
single_out = [pd.ExcelFile(dir).parse(skiprows = 1, parse_cols = "I")[u'列名'].value_counts() for dir in file_dir]
## 把多个文件的结果合并在一起
out = single_out[0]
for x in single_out[1:]:
out = out.add(x, fill_value = 0)
## 导出为excel
pd.DataFrame(out).to_excel(excel_writer = dir_str + "_out.xlsx")
# 调用函数
foo(dir_str = '某个包含所有待处理文件的路径')
备注:转移自新浪博客,截至2021年11月,原阅读数964,评论0个。