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. CTF练习三 —— 命令注入&命令执行绕过

    这个题是第四届强网杯也就是2020.8.22号开始的那场一道简单的命令注入题,再这之前我并没有学习过命令注之类的知识,,,看到题之后先搜在学,,误打误撞解了出来,过段时间wp就会放出来,所以这里就不对 ...

  2. tep用户手册帮你从unittest过渡到pytest

    unittest和pytest是Python的2个强大的测试框架,经常用来做UI自动化或接口自动化.unittest是PyCharm的默认集成工具,也是我们大多数人入门自动化的首选框架.pytest提 ...

  3. (十五)、shell脚本之简单控制流结构

    一.基本的控制结构 1.控制流 常见的控制流就是if.then.else语句提供测试条件,测试条件可以基于各种条件.例如创建文件是否成功.是否有读写权限等,凡是执行的操作有失败的可能就可以用控制流,注 ...

  4. JVM 经典垃圾收集器 —— CMS 收集器

    本文部分摘自<深入理解 Java 虚拟机第三版> 概述 CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器.由于大部分 Java 应用主要 ...

  5. mysql数据库连接java

    1 1.创建配置文件jdbc.properties 2 3 jdbc.driver=com.mysql.jdbc.Driver 4 jdbc.url=jdbc:mysql://localhost:33 ...

  6. Java学习日报7.10

    package Address;import java.util.Scanner; public class Address{ Scanner sc=new Scanner(System.in); p ...

  7. 批量修改vsphere共享存储多路径选择策略

    传统方式修改存储的多路径选择策略 首先说一下传统web界面操作方式: 可以看到至少需要6次才能修改完成一个.在生产环境中一般会挂载很多FC存储,这时候就需要一个批量快捷的方式来修改. 使用Powerc ...

  8. WebService的开发手段

    一.WebService的开发手段 目前有关webService的开发手段有2种 1.JDK开发(jdk必须是1.6及以上版本,因为jdk是在1.6版本中引入并支持webservice开发的); 2. ...

  9. Redis基础篇(七)哨兵机制

    上一篇文章介绍了高可靠方案:主从集群模式.通过主从库的读写分离,来保证服务的可靠性. 当某个从库出现故障时,不影响服务的使用,主库仍然可以处理写命令,其他从库可以处理读命令.但主库发生故障,就不能处理 ...

  10. 记一次Hadoop安装部署过程

    实验名称:Hadoop安装部署 一.实验环境: 虚拟机数量:3个 (1个master,2个slave:slave01,slave02) 主节点master信息: 操作系统:CentOS7.5 软件包位 ...