Python Pandas操作Excel

前情提要

本章使用的 Python3.6 Pandas==0.25.3
项目中需要用到excel的文件字段太多 考虑到后续字段命名的变动以及中文/英文/日文...等多国语言的校验
操作麻烦 后改进的操作方式

测试文件点击下载

Pandas中文文档

Pandas中文文档

# 安装pandas
# -i https://pypi.douban.com/simple/ 国内镜像加速
pip insatll pandas==0.25.3 -i https://pypi.douban.com/simple/

操作Excel文件/获取列数据

"""
################ Rudy ################
############# 2021-01-22 #############
""" import pandas as pd def get_excel(path_load):
df1 = pd.read_excel(path_load) # 读取excel
df2 = df1.dropna(how='all') # 数据清洗,为完成需求删去不必要的行
df2 = df2.replace('-', 0) # 把‘-’的替换成0便于后面计算
df2 = df2.fillna(0) # 数据清洗,缺失值用0补足
df2 = df2.reset_index(drop=True) # 重设行索引
column_name = [i for i in df1] # 获取所有的列名
if df2.empty: # 校验文件是否为空
return '文件内容为空,请检查是否有数据'
try:
start_date_time = df2[column_name[0]].dt.strftime('%Y-%m-%d')
end_date_time = df2[column_name[1]].dt.strftime('%Y-%m-%d')
advertising_mix_name = df2[column_name[2]]
currency = df2[column_name[3]]
name_of_advertising_campaign = df2[column_name[4]]
name_of_advertising_group = df2[column_name[5]]
launch = df2[column_name[6]]
matching_type = df2[column_name[7]].replace('-', "Automatic")
customer_search_terms = df2[column_name[8]]
display_volume = df2[column_name[9]]
hits = df2[column_name[10]]
ctr = round(df2[column_name[11]] * 100, 2)
cpc = round(df2[column_name[12]], 2)
spend = df2[column_name[13]]
total_sales = df2[column_name[14]]
acos = round(df2[column_name[15]] * 100, 2)
roas = round(df2[column_name[16]], 2)
total_orders_in_seven_days = df2[column_name[17]]
total_sales2 = df2[column_name[18]]
seven_days_conversion_rate = round(df2[column_name[19]] * 100, 2)
advertising_sku_sales = df2[column_name[20]]
other_sku_sales = df2[column_name[21]]
advertising_sku_sales2 = df2[column_name[22]]
other_sku_sales2 = df2[column_name[23]]
except Exception as e:
print(e)
return '文件上传失败...联系客服解决' file_path = './ceshi.xlsx'
f = get_excel(file_path)
print(f)

其他操作/某行/某列数据

获取某一行或者某几行的数据 整行数据

# 获取一行数据
l1 = df2[0:1]
# 获取多行数据 例如获取全部
l2 = df2[0:len(df2)]

操作示例

"""
################ Rudy ################
############# 2021-01-22 #############
""" import pandas as pd def get_excel(path_load):
df1 = pd.read_excel(path_load)
df2 = df1.dropna(how='all') # 数据清洗,为完成需求删去不必要的行
df2 = df2.replace('-', 0) # 把‘-’的替换成0便于后面计算
df2 = df2.fillna(0) # 数据清洗,缺失值用0补足
df2 = df2.reset_index(drop=True) # 重设行索引
column_name = [i for i in df1] # 获取所有的列名
if df2.empty: # 校验文件是否为空
return '文件内容为空,请检查是否有数据'
# 获取一行数据
l1 = df2[0:1]
# 获取多行数据 例如获取全部
l2 = df2[0:len(df2)] file_path = './ceshi.xlsx'
f = get_excel(file_path) """
print(l1)
Start Date ... 7 Day Other SKU Sales ($)
0 2021-01-06 ... 0 [1 rows x 24 columns] print(l2)
Start Date ... 7 Day Other SKU Sales ($)
0 2021-01-06 ... 0
1 2021-01-06 ... 0
2 2021-01-05 ... 0
3 2021-01-05 ... 0
..................剩下的忽略.................. [31 rows x 24 columns]
"""

使用loc获取数据,loc可接受两个参数/一个为行下标/一个为列下标

# 获取某一行数据 如果已知行 可以选择这种方式
l1 = df2.loc[0]
# 获取第几行 与 第几行的数据 注意是 与 代表获取的第5与第10行数据
l2 = df2.loc[[5, 10]]
# 通过切片方式获取多行数据
l3 = df2.loc[0:10]

操作示例:

"""
################ Rudy ################
############# 2021-01-22 #############
""" import pandas as pd def get_excel(path_load):
df1 = pd.read_excel(path_load)
df2 = df1.dropna(how='all') # 数据清洗,为完成需求删去不必要的行
df2 = df2.replace('-', 0) # 把‘-’的替换成0便于后面计算
df2 = df2.fillna(0) # 数据清洗,缺失值用0补足
df2 = df2.reset_index(drop=True) # 重设行索引
column_name = [i for i in df1] # 获取所有的列名
if df2.empty: # 校验文件是否为空
return '文件内容为空,请检查是否有数据'
# 获取某一行数据 如果已知行 可以选择这种方式
l1 = df2.loc[0]
# 获取第几行 与 第几行的数据 注意是 与 代表获取的第5与第10行数据
l2 = df2.loc[[5, 10]]
# 通过切片方式获取多行数据
l3 = df2.loc[0:10] file_path = './ceshi.xlsx'
f = get_excel(file_path) """
print(l1)
Start Date 2021-01-06 00:00:00
End Date 2021-01-06 00:00:00
Portfolio name Not grouped
....忽略中间部分....
7 Day Advertised SKU Units (#) 0
7 Day Other SKU Units (#) 0
7 Day Advertised SKU Sales ($) 0
7 Day Other SKU Sales ($) 0
Name: 0, dtype: object print(l2)
Start Date ... 7 Day Other SKU Sales ($)
5 2021-01-06 ... 0
10 2021-01-09 ... 0 [2 rows x 24 columns] print(l3)
...
"""

Python Pandas操作Excel的更多相关文章

  1. Python读写操作Excel模块_xlrd_xlwt_xlutils

    Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...

  2. Python“文件操作”Excel篇(上)

    大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...

  3. Python openpyxl、pandas操作Excel方法简介与具体实例

    本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...

  4. Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)

    数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...

  5. Python之操作Excel、异常处理、网络编程

    知识补充: 1.falsk模块中一些方法总结 import flask from flask import request,jsonify server = flask.Flask(__name__) ...

  6. Python - 常规操作Excel - 第二十六天

    前言 作为一名资深程序员,通过代码熟练操作Excel是必不可少的技能,本章主要讲解Python通过openpyxl第三方库(官方文件说明)对Excel进行操作,使Excel程序化操作更为简单快捷. o ...

  7. python中操作excel数据

    python操作excel,python有提供库 本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以 1.安装 pip install openpyxl 2.使用 ...

  8. python简单操作excel

    python操作excel 写入excel # 写入excel import xlwt # 创建xls对象 wb = xlwt.Workbook() # 新增两个表单页(sheet1) sh1 = w ...

  9. 【Python自动化Excel】pandas操作Excel的“分分合合”

    话说Excel数据表,分久必合.合久必分.Excel数据表的"分"与"合"是日常办公中常见的操作.手动操作并不困难,但数据量大了之后,重复性操作往往会令人崩溃. ...

随机推荐

  1. Kubernetes应用管理器OpenKruise之CloneSet

    OpenKruise OpenKruise 是 Kubernetes 的一个标准扩展,它可以配合原生 Kubernetes 使用,并为管理应用容器.sidecar.镜像分发等方面提供更加强大和高效的能 ...

  2. Python利用zmail收取邮件

    收取邮件一般用pop和imap,这里使用国人大神开发的zmail来收取: 1 ''' 2 #利用zmail收取邮件 3 #只要几行代码 4 #安装库:pip3 install zmail 5 #国内大 ...

  3. Python将文件夹下的文件名写入excel方便统计

    如题,贴代码: 1 ''' 2 #python将某文件夹下的文件名存储到excel中 3 ''' 4 5 #导入所需模块 6 import os 7 import xlwt 8 9 #定义要处理的文件 ...

  4. iOS音乐电台类项目开发

    1.技术难度不是太大,代码大致如下 2.用到的一些第三方 ZFProgressView,pageController,RESideMenu,MJRefresh,MBProgressHUD,RNFros ...

  5. 前台js获取url传递参数(后台Request.QueryString接收)

    方法 封装 function GetQueryString(name) { var reg = new RegExp("(^|&)" + name + "=([^ ...

  6. MongoDb学习三(spring-data-mongodb)

    本文采用2个种配置方式.xml配置 代码配置方式进行数据库的连接.实现简单的增删该查等一些操作.代码都有注释官方文档如下https://docs.spring.io/spring-data/mongo ...

  7. 浅谈Java并发编程系列(八)—— LockSupport原理剖析

    LockSupport 用法简介 LockSupport 和 CAS 是Java并发包中很多并发工具控制机制的基础,它们底层其实都是依赖Unsafe实现. LockSupport是用来创建锁和其他同步 ...

  8. VS2017+qt5.9的安装

    VS2017+qt5.9的安装 运行环境: win7旗舰版+vs2017专业版+qt5.9.2 第一步:安装qt5.9.2 下载qt安装包:下载地址http://mirrors.ustc.edu.cn ...

  9. eclipse的相关操作和使用快捷键

    修改字体Window->preferences->General->Appearance->ColorsandFonts ->Basic->text Font 在e ...

  10. C语言基础二维数组

    (1)二位数组的定义int array[n][m],行下标的取值范围是0~n-1,列下标的取值范围是0~m-1,二维数组最大下标元素是array[n-1][m-1]:如定义一个3行4列的数组 int ...