文章目录

  • 欢迎关注公众号【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的高级操作相关推荐

  1. 汇总pandas中的dataframe的索引操作

    文章目录 数据集 loc索引 iloc索引 特殊索引 修改索引 数据集 先建立好如下数据: import pandas as pddf = pd.DataFrame([['乔峰', '男', 95, ...

  2. Cocos2d-x数据模块教程04:plist文件操作

    我们知道在Cocos2d-x中,plist文件是非常常见的配置文件.它是特定格式的xml文件.例如:小图打包成大图的纹理图片.制作粒子特效.帧动画等,都用到了plist文件作为配置文件.所以,在这一章 ...

  3. 3 Python数据分析 美国各州人口分析案例 Pandas高级操作 美国大选献金案例 matplotlib

    Python数据分析 1 案例 美国各州人口分析 1.1 数据介绍 数据来源:https://github.com/jakevdp/data-USstates/ 1.1.1 州人口数量表 state- ...

  4. pandas dataframe column_Python数据分析——Pandas 教程(下)

    Python数据分析--Pandas 教程(上) 上节,我们讲了 Pandas 基本的数据加载与检索,这节我们讲讲如何进行数据比较. Pandas系列对象 在 Pandas 中我们获取指定列的数据有多 ...

  5. Pandas简明教程:二、Pandas基本数据结构-DataFrame与Series

    文章目录 1.什么是表格? 2.DataFrame类型 3.Series类型 本系列教程教程完整目录: 1.什么是表格? 月份 姓名 性别 应发工资 实发工资 职位 0 1 张三 男 2000 150 ...

  6. python dataframe 列_python pandas库中DataFrame对行和列的操作实例讲解

    用pandas中的DataFrame时选取行或列: import numpy as np import pandas as pd from pandas import Sereis, DataFram ...

  7. Pandas高级操作

    替换操作 替换操作可以同步作用于Series和DataFrame中 单值替换 普通替换:替换所有符合要求的元素:to_replace=15,value='e' 按列指定单值替换:to_replace= ...

  8. Pandas——掌握DataFrame的常用操作

    Pandas--掌握DataFrame的常用操作 一.查看DataFrame的常用属性 1.1.订单详情表的4个基本属性 1.2.size.ndim和 shape属性的使用 1.3.使用T属性进行转置 ...

  9. Pandas 统计分析基础 笔记2 任务4.2 掌握DataFrame的常用操作

    文章目录 pandas_任务4.2 掌握DataFrame的常用操作 代码4-12 订单详情表的4个基本属性 4-13 size,ndim,shape属性的使用 4-14 使用T属性进行转置 4-15 ...

最新文章

  1. linux 下 `dirname $0` 脚本文件放置的目录
  2. linux 安装mysql
  3. 使用jmeter测试java程序
  4. SAS 2.0:中端理想“零距离”?
  5. 从硬件开始实践物联网-物联网弹幕器的灵感!
  6. 113. 路径总和 (剑指 Offer 34. 二叉树中和为某一值的路径)(回溯算法)
  7. 下篇 | 说说无锁(Lock-Free)编程那些事(下)
  8. 初次联系导师短信模板_2020考研复试:提前联系导师的6点注意事项(附邮件模板)...
  9. OpenTLD 未完成 - 虎头
  10. android学习者优秀网址推荐
  11. 推文科技:AI解决方案助力内容出海
  12. [再寄小读者之数学篇](2014-12-24 乘积型不等式)
  13. mdb java_Java生成mdb文件(MS Access文件)
  14. educoder MongoDB 复制集 分片
  15. Spring Cloud 集成 euraka-server 和 euraka-client
  16. modbus协议的认识和libmodbus库使用
  17. 英特尔主板快捷启动键_BIOS里如何设置U盘启动?硬盘怎么设置第一启动项?
  18. 如何把微信朋友圈的小视频转发到自己的朋友圈
  19. win10服务器文件夹显示不全,Win10系统文件/文件夹图标显示不正常的解决方法
  20. php投票小程序源码,微信小程序:投票小程序源码

热门文章

  1. linux mysql升级5.7_linux 升级 MySQL5.7.32 mysql升级(yum方式)
  2. JavaScript中的数组常用方法总结
  3. 增值你的C++技能,C++成为WEB后台“颜值 ”担当(一)
  4. 如何获取(GET)一杯咖啡——星巴克REST案例分析【转】
  5. 如何从Excle管理软件的方式中走出来
  6. word自动消除html标签,移除Remove Microsoft Word HTML Tag
  7. 专科毕业的Java菜鸟,只干了这一件事,offer拿到手软!
  8. python编写递归函数_Python递归函数如何写?正确的Python递归函数用法!
  9. GitLab报错502——Whoops, GitLab is taking too much time to respond 502 错误
  10. mtb5_Nested Calculations_lookup(hide data)filter_address(direction)_partition(scope)_Rank_Size_Index