Python Pandas操作Excel
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的更多相关文章
- Python读写操作Excel模块_xlrd_xlwt_xlutils
Python 读写操作Excel -- 安装第三方库(xlrd.xlwt.xlutils.openpyxl) 如果仅仅是要以表单形式保存数据,可以借助 CSV 格式(一种以逗号分隔的表格数据格式)进行 ...
- Python“文件操作”Excel篇(上)
大家好,我们今天来一起探索一下用Python怎么操作Excel文件.与word文件的操作库python-docx类似,Python也有专门的库为Excel文件的操作提供支持,这些库包括xlrd.xlw ...
- Python openpyxl、pandas操作Excel方法简介与具体实例
本篇重点讲解windows系统下 Python3.5中第三方excel操作库-openpyxl: 其实Python第三方库有很多可以操作Excel,如:xlrd,xlwt,xlwings甚至注明的数据 ...
- Python 读写操作Excel —— 安装第三方库(xlrd、xlwt、xlutils、openpyxl)
数据处理是 Python 的一大应用场景,而 Excel 则是最流行的数据处理软件.因此用 Python 进行数据相关的工作时,难免要和 Excel 打交道. 如果仅仅是要以表单形式保存数据,可以借助 ...
- Python之操作Excel、异常处理、网络编程
知识补充: 1.falsk模块中一些方法总结 import flask from flask import request,jsonify server = flask.Flask(__name__) ...
- Python - 常规操作Excel - 第二十六天
前言 作为一名资深程序员,通过代码熟练操作Excel是必不可少的技能,本章主要讲解Python通过openpyxl第三方库(官方文件说明)对Excel进行操作,使Excel程序化操作更为简单快捷. o ...
- python中操作excel数据
python操作excel,python有提供库 本文介绍openpyxl,他只支持新型的excell( xlsx)格式,读取速度还可以 1.安装 pip install openpyxl 2.使用 ...
- python简单操作excel
python操作excel 写入excel # 写入excel import xlwt # 创建xls对象 wb = xlwt.Workbook() # 新增两个表单页(sheet1) sh1 = w ...
- 【Python自动化Excel】pandas操作Excel的“分分合合”
话说Excel数据表,分久必合.合久必分.Excel数据表的"分"与"合"是日常办公中常见的操作.手动操作并不困难,但数据量大了之后,重复性操作往往会令人崩溃. ...
随机推荐
- Python进阶——为什么GIL让多线程变得如此鸡肋?
本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理 做 Python 开发时,想必你肯定听过 GIL,它经常被 Python 程序员吐槽,说 Pytho ...
- Linux环境下使用logrotate工具实现nginx日志切割
一. 前提背景及需求 nginx运行日志默认保存在nginx安装目录下的 /usr/local/nginx/logs 文件夹, 包含access.log和error.log两个文件. (1) acce ...
- C# 7-zip 压缩和解压缩
using System; using System.Collections.Generic; using System.Text; using SevenZip; using System.IO; ...
- codeblocks opengl glew freeglut 2020.11.15
https://wenku.baidu.com/view/28cd5ebfaf1ffc4fff47accf.html 一下为测试代码 /* ============================== ...
- 前端中的 IoC 理念
背景 前端应用在不断壮大的过程中,内部模块间的依赖可能也会随之越来越复杂,模块间的 低复用性 导致应用 难以维护,不过我们可以借助计算机领域的一些优秀的编程理念来一定程度上解决这些问题,接下来要讲述的 ...
- Alpha冲刺--总结随笔
一.项目预期计划 时间 (天) 前端预期计划 完成情况 后端预期计划 完成情况 1-2 前端开始基本页面的设计 完成 整合项目依赖,搭建基本框架,建立数据库 完成 3-5 前端基础页面的实现与完善 完 ...
- 杭电1720---A+B Coming(技巧:使用%x)
Problem Description Many classmates said to me that A+B is must needs. If you can't AC this problem, ...
- Windows下使用Graalvm将Javafx应用编译成exe
1 背景 Graalvm是Oracle推出的一款新型虚拟机,其中一个吸引人的功能是:它可以将Java代码编译成各个平台的本地代码,这些平台包括:linux.macOS.windows.iOS.andr ...
- Akka Typed 官方文档之随手记
️ 引言 近两年,一直在折腾用FP与OO共存的编程语言Scala,采取以函数式编程为主的方式,结合TDD和BDD的手段,采用Domain Driven Design的方法学,去构造DDDD应用(Dom ...
- 深入理解Go Context
目录 emptyCtx类型 cancelCtx类型 timerCtx类型 valueCtx类型 在Go语言并发编程中,用一个goroutine来处理一个任务,而它又会创建多个goroutine来负责不 ...