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["姓名"]=name
data["销售产品"]=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=0
for 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