像用excel一样用pandas
1 说明
- 预计需要15min阅读此教材;
- 本教材仅讲述如何查看excel数据,筛选,排序,查找替换数据,不涉及excel中复杂的图形绘制及样式修改。
2 假设
假设,已经存在一个test.xlsx文件,仅包含一个sheet,文件内容如下。
| col1 | col2 |
|---|---|
| foo1 | bar1 |
| foo2 | bar2 |
3 读取
3.1 读取excel
读取一个excel并赋值给df
import pandas as pd
df = pd.read_excel('foo.xlsx')
查看行列数
#法一
df.shape
# (2,2)
# m,n其中m为行数,n为列数
# 法二
df.info()
# <class 'pandas.core.frame.DataFrame'>
# RangeIndex: 2 entries, 0 to 1
# Data columns (total 2 columns):
# col1 fa 2 non-null object
# col2 fa 2 non-null object
# dtypes: object(2)
# memory usage: 112.0+ bytes
查看列名
df.columns
# Index(['col1', 'col2'], dtype='object')
说明:如果没有定义表头columns展示仅是索引名1,2,3
获取单元格值
如果了解单元格的行列值可以使用iloc方法获取单元格值。
df.iloc[m, n]
其中m为行数,n为列数,二者均从0开始索引。
查看行
可以使用标签,切片,标签矩阵等等获取行数。
# 查看单行
df.iloc[1] or df.loc['index']
# 查看多行
df.iloc[[1,2,3,4,8,9]]
# 查看前7行
df.iloc[:7]
# 或者
df.loc[:7]
python中切片是不算终止一个元素的,df.iloc取前n个元素是使用':n',而loc方法是计算终止元素的,取前n元素方法就变为df.loc[:n-1]
查看列
# 查看单列
df['col1']或者df.col1,,其中col1为列名。推荐使用df.col1
# 查看多列,过滤时传入一个列数组
df[['col1','col2']]
# 查看前7列,由于不清楚前7列名,使用[]选择较为困难,pandas提供iloc方法,支持切片选择。
# :意味着选择所有行,0:7意味着选择从1行到第7行
df.iloc[[: , 0:7]]
如果excel表格有列名且没有空格,pandas会默认为df增加一个同列名的字段
全表查看
pandas没有全表查看api,如果要全表查看需要自行编写代码:
# 由于DataFrame是采用列式存储,这里第一层循环使用列,第二层循环使用行。
for i in df.columns:
for j in df.index:
if df.loc[j, i] == 'bar2':
print('column name:',i,',row idx:',j)
4 表格操作
4.1 新增
插入新列
插入新列仅需添加一个新的值,并赋值一个Series对象即可。
df['newcolumn']= pd.Series([1,2])
插入新行
方法一:使用loc。
# 注意在插入时列必须匹配,不能有缺省列。
chipo.loc[chipo.shape[0]]={'col1':value}
方法二:使用append
newdf = pd.DataFrame({'col3':value})
# 插入一条记录
df = df.append(newdf, ignore_index=True)
4.2 修改
修改单元格的值
如果你知道修改单元格的行和列可以使用iloc方法:
# 行和列从0开始索引
df.iloc[m, n] = targetV
4.3 删除
DataFrame提供drop方法支持批量删除行和列。
drop(labels, axis=0, level=None, inplace=False, errors='raise')
# --axis为0时表示删除行,axis为1时表示删除列
参数解释,

# 删除第一和第三行
df.drop(label=[1,3])
# 删除名为item的列
df.drop(label=['item'], axis=1)
# 等价
df.drop(label='item', axis=1)
pandas仅支持按标签删除行列,不支持按行列值删除,这点与选择不同
5 过滤和排序
5.1 过滤
添加过滤条件,
df[df.col1=='Chicken Bowl']
如果在一个列中要选择多个值,Series对象有isin方法可以实现该功能
df[df.col1.isin('Chicken Bowl','huawei')]
多条件过滤
如果需要添加多个过滤条件可以使用,
df[(df.col1=='Chicken Bowl') & (df.col2==30)]
该方法返回值类型为DataFrame。
5.2 排序
DataFrame和Series都有sort_values方法,可按照某列数据做排序。排序方法返回的值依然为DataFrame。
df.sort_values(['column'])
//sort_values支持传入数组,所以可以指定多个排序字段
# or 使用Series方法
df.col1.sort_values()
设定排序顺序
//按降序排序
df.sort_values(['col1','col2'],ascending=False)
按列值排序
df.sort_index(axis=1, ascending=False)
单列排序会影响所有记录重新排序,而不是影响单独列。
6 保存文件
至此,你已学会如何读取文件,查看数据并操作excel值,现在需要将结果写回excel。DataFrame提供to系列方法实现写回。
df.to_excel('test.xlsx', sheet_name='Sheet1')
注意读取时使用pandas静态方法,写回则使用DataFrame的方法
引用
像用excel一样用pandas的更多相关文章
- 51-python3 pandas读写excel
转载自:https://blog.csdn.net/brink_compiling/article/details/76890198?locationNum=7&fps=1 0. 前言Pyth ...
- python pandas写入excel文件
pandas读取.写入csv数据非常方便,但是有时希望通过excel画个简单的图表看一下数据质量.变化趋势并保存,这时候csv格式的数据就略显不便,因此尝试直接将数据写入excel文件. pandas ...
- 数据可视化基础专题(二):Pandas基础(一) excel导入与导出
1.Excel 1.1 Excel导入 read_excel() pandas.read_excel(io, sheet_name=0, header=0, names=None, index_col ...
- 用python的pandas读取excel文件中的数据
一.读取Excel文件 使用pandas的read_excel()方法,可通过文件路径直接读取.注意到,在一个excel文件中有多个sheet,因此,对excel文件的读取实际上是读取指定文件.并 ...
- 【Python自动化Excel】pandas处理Excel数据的基本流程
这里所说的pandas并不是大熊猫,而是Python的第三方库.这个库能干嘛呢?它在Python数据分析领域可是无人不知.无人不晓的.可以说是Python世界中的Excel. pandas库处理数据相 ...
- python数据处理excel和pdf,并打包成exe
之前零散的用过一点python做数据处理,这次又遇到一个数据处理的小功能,因此,记录一下整个流程,方便以后查阅. 功能要求:读取excel,找指定的PDF文件的页数是否与excel中记录的一致 整个处 ...
- pandas库的学习笔记
Environment pandas 0.21.0 python 3.6 jupyter notebook 开始 习惯上,我们导入如下: import pandas as pd import nump ...
- Pandas 处理丢失数据
处理丢失数据 import pandas as pd from pandas import Series, DataFrame import numpy as np 有两种丢失数据: 1. None ...
- 13--Python入门--文件读写--CSV&Excel文件
EXCEL文件 import pandas as pd excel=pd.read_excel('read_excel.xlsx') print(excel) CSV文件 import pandas ...
随机推荐
- 题解【[USACO18FEB]New Barns 】
浅谈一下对于这题做完之后的感受(不看题解也是敲不出来啊qwq--) 题意翻译 Farmer John注意到他的奶牛们如果被关得太紧就容易吵架,所以他想开放一些新的牛棚来分散她们. 每当FJ建造一个新牛 ...
- 一些IT service的相关知识
1. cmd是什么,怎么在电脑上打开cmd命令框. 在windows环境下,命令行程序为cmd.exe,是一个32位的命令行程序,微软Windows系统基于Windows上的命令解释程序,类似于微软的 ...
- 本地vue项目跨域服务器接口
1,打开index.js文件,找到 proxyTable 参照下面链接的方法,你们可以去点赞 https://www.douban.com/note/704314260/?type=like#sep
- GDB将所有线程堆栈输出到文件
在调试多线程程序时,经常需要查看线程堆栈信息,如果线程数目过多,每次查看一个线程堆栈,繁琐耗时.下面介绍一种一次性将所有线程堆栈输出到文件的方法. 首先,将gdb attach到调试线程 gdb -p ...
- Prometheus入门教程(二):Prometheus + Grafana实现可视化、告警
文章首发于[陈树义]公众号,点击跳转到原文:https://mp.weixin.qq.com/s/56S290p4j9KROB5uGRcGkQ Prometheus UI 提供了快速验证 PromQL ...
- python post与get请求的区别
post:请求的url不带参数 查询参数在WebForms保存 get:请求的url会附带查询参数 查询参数在QueryString保存
- docker registry 记录
部署 运行下面命令获取registry镜像 docker pull registry 下载到的版本默认为 docker.io/registry latest 将registry镜像运行并生成一个容器 ...
- 0基础如何更快速入门Linux系统?学完Linux有哪些就业方向?
Linux系统是使用Linux内核及开源自由软件组成的一套操作系统,是一种类UNIX系统,其内核在1991年10月5日由林纳斯·托瓦兹首次发布. 它的主要特性:Linux文件一切皆文件.完全开源免费. ...
- Python操作CSV和Excel
概述 csv是最通用的文件格式,本质是文本文件,用记事本即可打开.同一行中每个字段间用逗号分隔,在csv中显示的是在不同单元格中,在记事本中显示的是一行中用逗号分隔. xls是excel专用格式,是二 ...
- 第10天 | 12天搞定Python,文件操作(超详细)
在开发系统的过程中,经常会用到XML存储和传输数据,XML是一种用于标记电子文件使其具有结构性的标记语言,在博客中经常会见到. JSON是一种轻量级的数据交换格式,常被用在后端和前端的数据交互上,如你 ...