pandas教程04---DataFrame的高级操作
文章目录
- 欢迎关注公众号【Python开发实战】, 获取更多内容!
- 工具-pandas
- Dataframe对象
- 转置
- 计算表达式
- DataFrame查询
- DataFrame排序
- 绘制DataFrame
欢迎关注公众号【Python开发实战】, 获取更多内容!
工具-pandas
pandas库提供了高性能、易于使用的数据结构和数据分析工具。其主要数据结构是DataFrame,可以将DataFrame看做内存中的二维表格,如带有列名和行标签的电子表格。许多在Excel中可用的功能都可以通过编程实现,例如创建数据透视表、基于其他列计算新列的值、绘制图形等。还可以按照列的值对行进行分组,或者像SQL中那样连接表格。pandas也擅长处理时间序列。
但是介绍pandas之前,需要有numpy的基础,如果还不熟悉numpy,可以查看numpy快速入门教程。
导入pandas
import pandas as pd
Dataframe对象
一个DataFrame对象表示一个电子表格,带有单元格值、列名和行索引标签。可以定义表达式基于其他列计算列的值、创建数据透视表、按行分组、绘制图形等。可以将DataFrame视为Series的字典。
转置
d1 = pd.DataFrame({('public', 'birthyear'): {('Paris', 'alice'):1985, ('Paris', 'bob'):1984, ('London', 'charles'): 1992},('public', 'hobby'): {('Paris', 'alice'):'Biking', ('Paris', 'bob'):'Dancing'},('private', 'weight'): {('Paris', 'alice'):68, ('Paris', 'bob'):83, ('London', 'charles'): 112},('private', 'children'): {('Paris', 'alice'):np.nan, ('Paris', 'bob'):3, ('London', 'charles'): 0},}
)
d1
输出:
可以使用属性T
交换行索引和列索引。
d2 = d1.T
d2
输出:
计算表达式
pandas支持的一个重要特性是表达式的计算,这需要依赖于numexpr,即必须安装安库才能使用该特性。
people_dict = {'weight': pd.Series([68, 83, 112], index=['alice', 'bob', 'charles']),'birthyear': pd.Series([1984, 1985, 1992], index=['bob', 'alice', 'charles'], name='year'),'children': pd.Series([0, 3], index=['charles', 'bob']),'hobby': pd.Series(['Biking', 'Dancing'], index=['alice', 'bob']),
}
people = pd.DataFrame(people_dict)
people
输出:
people.eval('weight / (height / 100) ** 2 > 25')
输出:
alice False
bob True
charles True
dtype: bool
还支持赋值表达式,将inplace参数设置为True就可以直接修改DataFrame,而不是得到一个修改的副本。
people.eval('body_mass_index = weight / (height / 100) ** 2 ', inplace=True)
people
输出:
表达式中可以使用局部变量或全局变量,方法是在变量前面加符号@
。
overweight_threshold = 30
people.eval('overweight = body_mass_index > @overweight_threshold', inplace=True)
people
输出:
DataFrame查询
query方法可以根据查询表达式从DataFrame中筛选数据。
people.query('age > 30 and pets == 0')
输出:
DataFrame排序
通过嗲用sort_index方法可以对DataFrame进行排序。默认情况下,是按照行索引标签升序对行进行排序,但是也可以翻转顺序。
people.sort_index(ascending=False)
输出:
请注意,sort_index方法返回的是一个排序后的副本。要是想直接修改,同样的设置inplace参数为True。此外,可以设置参数axis=1来对列排序而不是对行排序。
people.sort_index(axis=1, inplace=True)
people
输出:
可以值排序DataFrame,而不是按行索引或列索引,调用sort_values方法,并指定要排序的列。
people.sort_values(by='age', inplace=True)
people
输出:
绘制DataFrame
和Series相似,基于DataFrame,使用pandas绘制漂亮的图形很容易。例如,通过调用DataFrame的plot方法,绘制折线图是很容易的。
import matplotlib.pyplot as plt
people.plot(x='body_mass_index', y=['height', 'weight'], kind='line')
plt.show()
可以传递matplotlib函数支持的额外参数。例如,创建一个散点图,并使用matplotlib的scatter()函数中s参数,传递设置点大小的列表。
people.plot(x='height', y='weight', kind='scatter', s=[40, 120, 200])
plt.show()
pandas教程04---DataFrame的高级操作相关推荐
- 汇总pandas中的dataframe的索引操作
文章目录 数据集 loc索引 iloc索引 特殊索引 修改索引 数据集 先建立好如下数据: import pandas as pddf = pd.DataFrame([['乔峰', '男', 95, ...
- Cocos2d-x数据模块教程04:plist文件操作
我们知道在Cocos2d-x中,plist文件是非常常见的配置文件.它是特定格式的xml文件.例如:小图打包成大图的纹理图片.制作粒子特效.帧动画等,都用到了plist文件作为配置文件.所以,在这一章 ...
- 3 Python数据分析 美国各州人口分析案例 Pandas高级操作 美国大选献金案例 matplotlib
Python数据分析 1 案例 美国各州人口分析 1.1 数据介绍 数据来源:https://github.com/jakevdp/data-USstates/ 1.1.1 州人口数量表 state- ...
- pandas dataframe column_Python数据分析——Pandas 教程(下)
Python数据分析--Pandas 教程(上) 上节,我们讲了 Pandas 基本的数据加载与检索,这节我们讲讲如何进行数据比较. Pandas系列对象 在 Pandas 中我们获取指定列的数据有多 ...
- Pandas简明教程:二、Pandas基本数据结构-DataFrame与Series
文章目录 1.什么是表格? 2.DataFrame类型 3.Series类型 本系列教程教程完整目录: 1.什么是表格? 月份 姓名 性别 应发工资 实发工资 职位 0 1 张三 男 2000 150 ...
- python dataframe 列_python pandas库中DataFrame对行和列的操作实例讲解
用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFram ...
- Pandas高级操作
替换操作 替换操作可以同步作用于Series和DataFrame中 单值替换 普通替换:替换所有符合要求的元素:to_replace=15,value='e' 按列指定单值替换:to_replace= ...
- Pandas——掌握DataFrame的常用操作
Pandas--掌握DataFrame的常用操作 一.查看DataFrame的常用属性 1.1.订单详情表的4个基本属性 1.2.size.ndim和 shape属性的使用 1.3.使用T属性进行转置 ...
- Pandas 统计分析基础 笔记2 任务4.2 掌握DataFrame的常用操作
文章目录 pandas_任务4.2 掌握DataFrame的常用操作 代码4-12 订单详情表的4个基本属性 4-13 size,ndim,shape属性的使用 4-14 使用T属性进行转置 4-15 ...
最新文章
- linux 下 `dirname $0` 脚本文件放置的目录
- linux 安装mysql
- 使用jmeter测试java程序
- SAS 2.0:中端理想“零距离”?
- 从硬件开始实践物联网-物联网弹幕器的灵感!
- 113. 路径总和 (剑指 Offer 34. 二叉树中和为某一值的路径)(回溯算法)
- 下篇 | 说说无锁(Lock-Free)编程那些事(下)
- 初次联系导师短信模板_2020考研复试:提前联系导师的6点注意事项(附邮件模板)...
- OpenTLD 未完成 - 虎头
- android学习者优秀网址推荐
- 推文科技:AI解决方案助力内容出海
- [再寄小读者之数学篇](2014-12-24 乘积型不等式)
- mdb java_Java生成mdb文件(MS Access文件)
- educoder MongoDB 复制集 分片
- Spring Cloud 集成 euraka-server 和 euraka-client
- modbus协议的认识和libmodbus库使用
- 英特尔主板快捷启动键_BIOS里如何设置U盘启动?硬盘怎么设置第一启动项?
- 如何把微信朋友圈的小视频转发到自己的朋友圈
- win10服务器文件夹显示不全,Win10系统文件/文件夹图标显示不正常的解决方法
- php投票小程序源码,微信小程序:投票小程序源码
热门文章
- linux mysql升级5.7_linux 升级 MySQL5.7.32 mysql升级(yum方式)
- JavaScript中的数组常用方法总结
- 增值你的C++技能,C++成为WEB后台“颜值 ”担当(一)
- 如何获取(GET)一杯咖啡——星巴克REST案例分析【转】
- 如何从Excle管理软件的方式中走出来
- word自动消除html标签,移除Remove Microsoft Word HTML Tag
- 专科毕业的Java菜鸟,只干了这一件事,offer拿到手软!
- python编写递归函数_Python递归函数如何写?正确的Python递归函数用法!
- GitLab报错502——Whoops, GitLab is taking too much time to respond 502 错误
- mtb5_Nested Calculations_lookup(hide data)filter_address(direction)_partition(scope)_Rank_Size_Index