3合并本地excel工作表并导出多种分析结果
pandas可以读取的数据格式:
read_csv
read_excel
read_hdf
read_sql
read_json
read_msgpack(experimental)
read_html
read_stata
read_sas
read_clipboard
read_pickle
2pandas可以存储的数据格式
to_csv
to_excel
to_hdf
to_sql
to_json
to_msgpack(experimental)
to_html
to_gbq(experimental)
to_stata
to_clipboard
to_pickle
1安装库:
pip install pandas
pip install xlsxwriter
2合并两张表并导出结果:
#导入库 import pandas as pd #指出文件路径 filepath = r'E:/test/lesson15.xlsx'
#保存文件
df.to_csv(r'E:/test/resultcsv.csv')
#读取文件中的两张表 df1 = pd.read_excel(filepath,sheet_name="Sheet101") df2 = pd.read_excel(filepath,sheet_name="Sheet105") #合并两张表(忽略之前的索引,重新编排索引ignore_index=True) df3 = pd.concat([df1,df2],ignore_index=True) #把结果导出为excel文件(index=False:我不希望把它的行索引给导出来;na_rep=0:设置缺失值,如果数据没有值就用0代替;inf_rep=0:如果出现无穷值用0替代) resultPath = r'E:/test/result.xlsx' df3.to_excel(resultPath,sheet_name="汇总",index=False,na_rep=0,inf_rep=0) #把结果导出为csv文件: resultCSVPath = r'E:/test/result.csv' df3.to_csv(resultCSVPath,index=False,na_rep=0)
3使用 xlsxwriter库可以事半功倍
#1定义一个如何写excel的类型 writer = pd.ExcelWriter(resultPath,engine="xlsxwriter") #2可以一次性执行多钟导出 df3.to_excel(writer,sheet_name="数据汇总有索引") df3.to_excel(writer,sheet_name="数据汇总无索引",index=False) #导出部分列 df3.to_excel(writer,sheet_name="只导出运单编号和账单金额",index=False,columns=["运单编号","账单金额"]) #3不要忘记保存 writer.save()
4集合函数的应用:
import pandas as pd #读取文件 df = pd.read_excel(r'E:/test/result.xlsx') #根据发件人姓名筛选出账单金额并求和 print(df.groupby("发件人姓名")["账单金额"].sum()) #按照发件人电话进行分组,对发件人电话进行count,对账单金额进行sum print(df.groupby("发件人电话").aggregate({"发件人电话":"count","账单金额":"sum"})) #重置索引 print(df.groupby("发件人电话").sum().reset_index) #统计一级部门的