最近由于要处理一些excel表格,发现pandas可以免去很多的繁琐的人工劳动,在这里记录一下我所用到的知识。
import pandas as pd
filename = '***.xls'
data = pd.read_excel(filename, None)
#此处None的作用是将excel内的所有工作表读入,生成一个字典,否则默认只读入第一个工作表
for sh_name in data.keys():
df = data[sh_name]
print(sh_name)
读入后,data是一个字典,keys()是该文件中的所有Sheet名,df的数据类型是dataframe
data = pd.read_excel(filename, None, converters={'账号':str})
#converters可以将长数字转换为字符串类型,避免输出的时候都变成了科学计数法
df = pd.read_excel(filename, sheet_name='Sheet1', converters={'账号':str})
#可以指定打开名为Sheet1的工作表,此时读出的数据为DataFrame类型
df.shape()
tmp = df[(df.金额 > 0)]
对列名为金额的列进行筛选,并将得到的dataframe存入tmp中
df.列名.sum()
df.列名.max()
df.列名.min()
导出文档使用到了out_excel(),可以将操作完成的dataframe导入excel文件
df.out_excel('文件名.xls', sheet_name = 'xxx')
#还可以通过startrow, startcol等参数来确定导入位置等,具体可以去查一下这个函数
这样子就成功将df导出到excel中了!
但是!这种输出方法只适用于输出一次df,如果想要再次输出的话,该语句将会把原来的文件删除掉,只写入最后一次的df
此问题用以下方法来解决:
writer = pd.ExcelWriter('out_file.xls')
df1.to_excel(writer, sheet_name = 'xx.xls')
df2.to_excel(writer, sheet_name = 'xxx.xls')
writer.save()#记得要保存,不然看不见写入的数据
这样就可以连续写入excel文件啦
不过这种方法要注意,写入时不要在已经有数据的地方重新写入,不然会报错