pandas批量处理excel表格
pandas 批量处理excel表格
import pandas as pd
import numpy as np
一.少量表格的操作
1.读取数据
data1=pd.read_excel("D:\Windows 10 Documents\Desktop\pd_excel\李大牛_业绩表.xlsx")
data2=pd.read_excel("D:\Windows 10 Documents\Desktop\pd_excel\刘小鼠_业绩表.xlsx")
data3=pd.read_excel("D:\Windows 10 Documents\Desktop\pd_excel\王小兔_业绩表.xlsx")
data4=pd.read_excel("D:\Windows 10 Documents\Desktop\pd_excel\张小虎_业绩表.xlsx")
data1
| 姓名 | 销售产品 | 销售金额 | 销售时间 | |
|---|---|---|---|---|
| 0 | 李大牛 | 海尔冰箱 | 10000 | 2012-12-01 |
| 1 | 李大牛 | 海尔空调 | 23450 | 2012-12-02 |
| 2 | 李大牛 | 联想电脑 | 32000 | 2012-12-03 |
| 3 | 李大牛 | 华为手机 | 65000 | 2012-12-04 |
| 4 | 李大牛 | 苹果手机 | 8000 | 2012-12-05 |
| 5 | 李大牛 | oppo手机 | 4000 | 2012-12-06 |
2.合并数据
data=pd.concat([data1,data2,data3,data4])
data=pd.concat([data1,data2,data3,data4],ignore_index=True)
3.生成excel
data.to_excel("D:\Windows 10 Documents\Desktop\业绩表.xlsx")
4.计算数据
data.loc["销售总金额","销售金额"]=data["销售金额"].sum()
data
| 姓名 | 销售产品 | 销售金额 | 销售时间 | |
|---|---|---|---|---|
| 0 | 李大牛 | 海尔冰箱 | 10000.0 | 2012-12-01 |
| 1 | 李大牛 | 海尔空调 | 23450.0 | 2012-12-02 |
| 2 | 李大牛 | 联想电脑 | 32000.0 | 2012-12-03 |
| 3 | 李大牛 | 华为手机 | 65000.0 | 2012-12-04 |
| 4 | 李大牛 | 苹果手机 | 8000.0 | 2012-12-05 |
| 5 | 李大牛 | oppo手机 | 4000.0 | 2012-12-06 |
| 6 | 刘小鼠 | 格力冰箱 | 20000.0 | 2012-12-02 |
| 7 | 刘小鼠 | 格力空调 | 33450.0 | 2012-12-02 |
| 8 | 刘小鼠 | 联想电脑 | 42000.0 | 2012-12-03 |
| 9 | 刘小鼠 | 华为手机 | 55000.0 | 2012-12-04 |
| 10 | 刘小鼠 | 苹果手机 | 6000.0 | 2012-12-05 |
| 11 | 刘小鼠 | oppo手机 | 8000.0 | 2012-12-07 |
| 12 | 王小兔 | 美的冰箱 | 30000.0 | 2012-12-02 |
| 13 | 王小兔 | 美的空调 | 43450.0 | 2012-12-02 |
| 14 | 王小兔 | 小米电脑 | 22000.0 | 2012-12-03 |
| 15 | 王小兔 | 华为手机 | 35000.0 | 2012-12-08 |
| 16 | 王小兔 | 苹果手机 | 2000.0 | 2012-12-09 |
| 17 | 王小兔 | oppo手机 | 10000.0 | 2012-12-10 |
| 18 | 张小虎 | 海信冰箱 | 50100.0 | 2012-12-02 |
| 19 | 张小虎 | 海信空调 | 43450.0 | 2012-12-02 |
| 20 | 张小虎 | 华为电脑 | 52000.0 | 2012-12-03 |
| 21 | 张小虎 | 华为手机 | 25000.0 | 2012-12-08 |
| 22 | 张小虎 | 苹果手机 | 3000.0 | 2012-12-09 |
| 23 | 张小虎 | oppo手机 | 23400.0 | 2012-12-10 |
| 销售总金额 | NaN | NaN | 646300.0 | NaT |
二. 批量处理表格
1.批量生成excel表
import random
product=["海信空调","海尔冰箱","格力空调","海信冰箱","晶弘冰箱","苹果手机","联想电脑","苹果电脑","华为电脑","弘基电脑","小米手机","华为手机","OPPO手机","vivo手机"]
#生成100个excel文件
for i in range(100):data=pd.DataFrame()data["姓名"]=np.zeros(6)name = "王" + str(i)data["姓名"]=namedata["销售产品"]=random.sample(product,6)data["销售金额"]=np.random.randint(10000,60000,size=6)data["时间"]=random.sample(pd.date_range(start="20200101", end="20200113", freq="D").tolist(),6)data.to_excel("D:\Windows 10 Documents\Desktop\pd_excel\{}_业绩表.xlsx".format(name))
2.批量操作excel表
#读取文件夹中的所有excel表格
import os
def file_name(file_dir):"""个人销售总金额汇总"""total=pd.DataFrame(columns=["姓名","个人销售金额"])for dirpath, dirnames, filenames in os.walk(file_dir):
# print("dirpath",dirpath)
# print("dirnames",dirnames)
# print("filenames",filenames)count=0for i in filenames:file_path=file_dir+"\\"+i
# print(i) # 当前路径下所有非目录文件data=pd.read_excel(file_path)name=i[:3]total.loc[count]=[name,data["销售金额"].sum()]count+=1
# return total
file_dir="D:\Windows 10 Documents\Desktop\pd_excel"
total=file_name(file_dir)
# total
total["个人销售金额"].sum()#求和
total["个人销售金额"].mean()#求均值
total["个人销售金额"].max()#求最大值
total["个人销售金额"].min()#求最小值
total.to_excel("D:\Windows 10 Documents\Desktop\总业绩表.xlsx")
批量处理excel表格 总结
1.找文件路径 #os模块
2.路径+文件名 拼接
3.读取数据 #read_excel()
4.操作 (例子中是进行100个销售人员,个人总额度的汇总)
python技术交流 1029280696
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
