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数据表的"分"与"合"是日常办公中常见的操作.手动操作并不困难,但数据量大了之后,重复性操作往往会令人崩溃. ...
随机推荐
- linux中搭建phpmyadmin详细流程
一.phpmyadmin部署流程 1.1介绍 phpMyAdmin是一个以PHP为基础,以Web-Base方式架构在网站主机上的MySQL的数据库管理工具,让管理者可用Web接口管理MySQL数据库. ...
- 深入理解MySQL系列之索引
索引 查找一条数据的过程 先看下InnoDB的逻辑存储结构: 表空间:可以看做是InnoDB存储引擎逻辑结构的最高层,所有的数据都存放在表空间中.默认有个共享表空间ibdata1.如果启用innodb ...
- (十三)、向shell脚本中传参
一.向脚本中传递位置参数 向脚本中传递参数的数目理论上可以无数多,但是只有前9个能被访问,使用shift可以改变此限制 $0 $1 $2 $3 $4 $5 $6 $7 $8 $9 脚本名字 first ...
- java中io流实现文件上传下载
新建io.jsp <%@ page language="java" contentType="text/html; charset=UTF-8" page ...
- [LeetCode]652. Find Duplicate Subtrees找到重复树
核心思想是:序列化树 序列化后,用String可以唯一的代表一棵树,其实就是前序遍历改造一下(空节点用符号表示): 一边序列化,一边用哈希表记录有没有重复的,如果有就添加,注意不能重复添加. 重点就是 ...
- [leetcode72]166. Fraction to Recurring Decimal手动实现除法
让人火大的一道题,特殊情况很多 不过也学到了: java中int类型的最大值的绝对值比最小值的绝对值小1 int最小值的绝对值还是负的,除以-1也是 这种时候最好转为long类型进行处理 long n ...
- docker 使用教程1
1.概念理解 镜像:docker镜像就像一个个模具. 容器:docker容器就是模具翻模出来的东西. 仓库:仓库就是存放模具的地方. 下面通过运行 hello-world 来理解 docker镜像运行 ...
- 运行命令区分webpack环境,以及axios数据请求的封装
在开发环境和线上环境时,由于环境的不同,有时候需要修改一定的代码,可以通过配置webpack环境来减少对代码的修改:另外,有时候去看别人的代码,你可能都找不到他的数据请求在什么位置,最近在做一个vue ...
- SpringBoot全局异常拦截
SpringBoot全局异常捕获 使用到的技能 @RestControllerAdvice或(@ControllerAdvice+@ResponseBody) @ExceptionHandler 代码 ...
- [ABP教程]第三章 创建、更新和删除图书
Web应用程序开发教程 - 第三章: 创建,更新和删除图书 关于本教程 在本系列教程中, 你将构建一个名为 Acme.BookStore 的用于管理书籍及其作者列表的基于ABP的应用程序. 它是使用以 ...