使用pandas操作excel

初学pandas的一些总结

  • pandas操作excel
    • 导入文档
      • 将excel中的工作表导入
    • 对DataFrame进行操作
      • 查看dataframe的行数列数
      • 对于dataframe的某一列进行筛选
      • 对于dataframe的某一列求和,查看最值等
    • 导出文档

pandas操作excel

最近由于要处理一些excel表格,发现pandas可以免去很多的繁琐的人工劳动,在这里记录一下我所用到的知识。

导入文档

将excel中的工作表导入

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类型

对DataFrame进行操作

查看dataframe的行数列数

df.shape()

对于dataframe的某一列进行筛选

tmp = df[(df.金额 > 0)]

对列名为金额的列进行筛选,并将得到的dataframe存入tmp中

对于dataframe的某一列求和,查看最值等

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文件啦

不过这种方法要注意,写入时不要在已经有数据的地方重新写入,不然会报错

你可能感兴趣的:(pandas学习,python,excel)