Python 操作 Excel 代码实例

操作背景:每周都要做周会材料并且数据都是手工计算费时费力,于是萌生了使用python来操作的想法,正好也在学习Python,为了学以制用更为了熟悉Python的操作特别是pandas的操作。

目标:表1(重庆厂.xlsx)表2(华蓥厂.xlsx)

将表1与表2遂宁市场部下的客户袋装、散装销量分别合并按客户销量大小排序,每个客户分别进行周销量环比

第一步:导入报表

# 首先我们需要需要3个库,pandas库,numpy库,openpyxl库。pandas在数据整理方面强大的能力,特别是在大数据的整理方面,小数据我们当然可以通过excel来实现,numpy在数据运算方面表现优异,openpyxl库是我们在导出到xlsx的文件时所需要用到的不然to_excel的时候可能会报错。
import pandas as pd
import numpy as np
import openpyxl
pd.set_option('expand_frame_repr', False)  # 当列太多时不换行
# pd.set_option('display.max_columns', None) 
pd.set_option('display.max_columns', 10)
# pd.set_option('display.max_rows', None)
pd.set_option('display.max_rows', 90)

# def read_excel(io, sheet_name=0, header=0, skiprows=None, skip_footer=0,
#                index_col=None, names=None, usecols=None, parse_dates=False,
#                date_parser=None, na_values=None, thousands=None,
#                convert_float=True, converters=None, dtype=None,
#                true_values=None, false_values=None, engine=None,
#                squeeze=False, **kwds):
# df = pd.read_excel(r'C:\Users\Tcement\Desktop\客户信息库.xlsx',sheet_name='销售网点')
df_cq = pd.read_excel(r'重庆厂.xlsx',sheet_name='袋装')
df_hy = pd.read_excel(r'华蓥厂.xlsx',sheet_name='袋装')

第二步:筛选需要的列行

1.清洗数据及数据筛选

# DataFrame.rename(mapper=None, index=None, columns=None, axis=None, copy=True, inplace=False, level=None)
# df_cq = df_cq.rename(str.lower, axis='columns')
# df_cq = df_cq.rename(str.lower, axis='index')
# s1.str.contains('oG', case=True, regex=True)
# s1.str.contains('og', na=False, regex=True)
# s1.str.contains('house|parrot', regex=True)
df_cq = df_cq.rename({'重庆厂2019年9月袋装客户销量统计':'市场部', 'Unnamed: 1':'姓名', 'Unnamed: 2':'客户名称', 'Unnamed: 3':'1号', 'Unnamed: 4':'2号', 'Unnamed: 5':'3号', 'Unnamed: 6':'4号', 'Unnamed: 7':'5号', 'Unnamed: 8':'6号', 'Unnamed: 9':'7号', 'Unnamed: 10':'8号', 'Unnamed: 11':'9号', 'Unnamed: 12':'10号','Unnamed: 13':'11号', 'Unnamed: 14':'12号','Unnamed: 15':'13号','Unnamed: 16':'14号', 'Unnamed: 17':'15号', 'Unnamed: 18':'16号', 'Unnamed: 19':'17号', 'Unnamed: 20':'18号', 'Unnamed: 21`':'19号', 'Unnamed: 22':'20号', 'Unnamed: 23':'21号', 'Unnamed: 24':'22号', 'Unnamed: 25':'23号', 'Unnamed: 26':'24号', 'Unnamed: 27':'25号', 'Unnamed: 28':'26号', 'Unnamed: 29':'27号', 'Unnamed: 30':'28号', 'Unnamed: 31':'29号', 'Unnamed: 32':'30号', 'Unnamed: 33':'31号', 'Unnamed: 34':'本月销量'}, axis='columns')
df_cq['市场部'].fillna(method='ffill', inplace=True)
df_cq['姓名'].fillna(method='ffill', inplace=True)
df_cq_temp = df_cq[['客户名称','1号','2号','3号','4号','5号','6号','7号']][df_cq['市场部'] == '遂宁市场部']
df_cq_temp = df_cq_temp[df_cq_temp['客户名称'].isna() == False]
df_
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值