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. Logistic 回归-原理及应用

    公号:码农充电站pro 主页:https://codeshellme.github.io 上一篇文章介绍了线性回归模型,它用于处理回归问题. 这次来介绍一下 Logistic 回归,中文音译为逻辑回归 ...

  2. 回顾 2020 年 GitHub 的大事件,你知道多少?

    作者:HelloGitHub-小鱼干 这里是 HelloGitHub 出品的年度盘点系列,本期我们将盘点 GitHub 在 2020 发生的大事件,回顾一下今年 GitHub 给我们带来了那些惊喜.故 ...

  3. 网易云解锁无版权PC&安卓版

    前言 又是一个不太忙碌的周末 好吧,其实智能车有很多东西要做,其他也有很多东西要处理,但我想咸鱼一个早上. 闲着没事去吾爱破解上翻了翻,找找音乐软件,因为Listen 1有个音源挂了,应该是咪咕的,导 ...

  4. SpringBoot 与 SpringSecurity

    一.环境搭建 (1)IDEA创建SpringBoot工程 (2)导入依赖 (3)如果是thymeleaf项目 需导入thymeleaf整合security的依赖 (4)编写配置类(采用AOP横切入程序 ...

  5. 读取平台管理员xlsx文件

    package com.cn.peitest.excel; import java.io.File; import java.io.FileInputStream; import java.io.Fi ...

  6. Git设置记住账号密码

    Git设置记住账号密码 添加如下配置 [credential] helper = store

  7. JavaDailyReports10_16

    今天学习安装配置了JavaWeb的资源环境, 明天开始学习HTML!

  8. linux下eclipse

    最近想学习C++,所以就重新安装了linux系统,虽然这两者没有什么联系,但是我还是比较喜欢linux系统,所以在linux下安装了Eclipse,想起了当初学习Red Hat 9.0时的痛苦场景,哎 ...

  9. Vue项目如何打包问题总结

    当我们将 vue 项目完成后,面临的就是如何将项目进行打包上线,放到服务器中.我使用的是 vue-cli(simple) 脚手架,所以就讲一下如何将项目进行打包,并放到 tomcat 上. 先来描述一 ...

  10. JS内存

    内存是用来存什么的 通俗的来说呢,就是用来存 var let function const 声明的变量. 内存的大小 与操作系统有关,64位1.4G 32位0.7G. 为啥内存大小要这么设计,为啥不是 ...