我们公司的实验室做完实验后,数据通常保存在excel或者csv的文件中。但是由于存储的数据很多,文件比较大,如果使用常用的宏定义来进行excel中的列数据进行排列不仅占用试验电脑内存,而且还存在应用wps打开文件时内置VBA崩溃的风险,所以尝试使用python处理excel表格。
实现内容:将excel按照自己需要的列顺序进行排列。
Python中存在专门处理excel的库函数,包括openpyxl、xlwt、xlrd,其中xlwt和xlrd比较老。当然还有python中可以处理数据的pandas和numpy.我主要是通过pandas库来实现。
下面展示一些 代码
。
// # 导入pandas库函数
import pandas as pd
# 导入表格
df =pd.read_excel(r'C:\Users\hh\Desktop\xx.xls')
# 创建自己规定的顺序列
own_list=['A','B','C','D','E','F','G','H','I','J','K','L']
# 遍历所需处理表格,并将表格列名创建一个列表
column_head = list(df.columns.values)
# 找出表格列索引中剩余列
differ_list = list(set(column_head).difference(set(own_list)))
# 找出顺序列与表格索引列共有的列,并按照顺序列进行排序
a = [x for x in own_list if x in column_head]
# 进行拼接
d = a + differ_list
# 创建dataframe表格
ndf = df[d]
# 创建newver.xlsx。所得表格即为最终结果
ndf.to_excel('newver1.xlsx',index = False)
我们需要注意三点:
1,应用pd库导入excel文件时,格式为dataframe。列名不是dataframe的第一行,而是为df.columns.values,并且需要放到list里边。
2,我处理了一个表格,row为1800行,column为300列,处理速度为0.6s。整理来说速度还可以。
3,处理csv文件时如excel一致。