Python数据分析pandas模块用法实例详解


Posted in Python onNovember 20, 2019

本文实例讲述了Python数据分析pandas模块用法。分享给大家供大家参考,具体如下:

pandas

pandas10分钟入门,可以查看官网:10 minutes to pandas

也可以查看更复杂的cookbook

  • pandas是非常强大的数据分析包,pandas 是基于 Numpy 构建的含有更高级数据结构和工具的数据分析包。就好比 Numpy的核心是 ndarray,pandas 围绕着 Series 和 DataFrame 两个核心数据结构展开 。Series和DataFrame 分别对应于一维的序列和二维表结构。

创建对象

常规导入方式:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

Series

  • Series 可以看做一个定长的有序字典,它是能够保存任何数据类型(整数,字符串,浮点数,Python对象等)的一维标记数组。
  • Series对象包含两个主要的属性:index 和 values。
  • 数据可以是Python字典、 ndarray、scalar value标量值(如5)等
  • 创建时有没有index都会设置默认下标,但是索引用的是数组时会默认使用创建时的索引
  • 创建时还可以指定name名字属性,之后可以修改 rename
ser1 = pd.Series(range(10,15),index=list('ABCDE'))
print(ser1)
# 下标和索引等同
print(ser1['A'])
print(ser1[0])

输出:

A    10
B    11
C    12
D    13
E    14
dtype: int64
10
10

取连续多个数据时,下标取值不包含结束位置,索引切片包括结束位置

print(ser1['A':'D'])
print(ser1[0:3])

输出:

A    10
B    11
C    12
D    13
dtype: int64
A    10
B    11
C    12
dtype: int64

取多个数据、条件筛选(布尔索引)

# 注意里面是一个列表
print(ser1[[0,1,3]])
# 布尔索引
print(ser1[(ser1>12)&(ser1<15)])

DataFrame

DataFrame是二维标记数据结构。 您可以将其视为电子表格或SQL表,或Series对象。 它通常是最常用的pandans对象。 像Series一样,DataFrame接受许多不同种类的输入:

  • Dict of 1D ndarrays, lists, dicts, or Series
  • 2-D numpy.ndarray
  • Structured or record ndarray
  • A Series
  • Another DataFrame
df1 = pd.DataFrame(np.random.randint(10,50,(3,4)), - index=list('ABC'),columns=list('abcd'))
  • index是行索引,colums是列索引
  • 用字典创建时,键名就是列索引,而且键值可以为列表,会自动补齐

取单行或单列数据,取单个数据

# 列取值,取出的是一个series对象
print(df1['a'])
print(df1['a'].values)
# 取出一行数据的某一行数据,也就是单个数据
print(df1['a']['B']) # 这两个一样
print(df1['a'][1])

取不连续多列,取连续多列(默认不支持连续,需要高级索引)

# 取不连续多列
print(df1[['a','c']])

行索引,可以直接切片,但是默认不能不连续多行取值,下标同理

print('行索引取值##############')
print(df1['A':'A'])
# 取连续多行就是df1['A':'C']

高级索引(花式索引)

一般情况用于DataFrame,这里直接略过Series

loc标签索引

df1 = pd.DataFrame(np.random.randint(10,50,(5,4)), index=list('ABCDE'),columns=list('abcd'))
# 取单行,类型是series
print(df1.loc['A'])
print(type(df1.loc['A']))
# 取连续多行,类型是DataFrame
print(df1.loc['A':'C'])
# 如果没有index索引就用下标,可以取连续多行连续多列
print(df1.loc['A':'D','a':'c'])
# 取不连续多行不连续多列
print(df1.loc[['A','C'],['a','c']])

iloc 位置索引

iloc是下标和lo用法一样,但是下标索引左闭右开,loc是包括最后一位

# DataFrame
print(df1.iloc[0:2, 0]) # 注意和df1.loc['A':'C', 'a']的区别
print(df1.loc['A':'C', 'a'])

ix 标签与位置混合索引

博主使用的pandas 0.24.2版本已经弃用.ix了(warning但还能使用),所以也就不写了

  • ix是以上二者的综合,既可以使用索引编号,又可以使用自定义索引,要视情况不同来使用,
  • 如果索引既有数字又有英文,那么这种方式是不建议使用的,容易导致定位的混乱。

增加数据

1 2
增加一行数据 1.df1.loc[‘D'] = [1,2,3,4,5] 2.df1.loc[‘D'] = [np.random.randint(10,20)]
增加一列数据 df1.

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
python发送伪造的arp请求
Jan 09 Python
Python中splitlines()方法的使用简介
May 20 Python
各个系统下的Python解释器相关安装方法
Oct 12 Python
深入理解Django的自定义过滤器
Oct 17 Python
Python设置在shell脚本中自动补全功能的方法
Jun 25 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
Numpy数组array和矩阵matrix转换方法
Aug 05 Python
python数据持久存储 pickle模块的基本使用方法解析
Aug 30 Python
关于Keras模型可视化教程及关键问题的解决
Jan 24 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 Python
Python列表删除重复元素与图像相似度判断及删除实例代码
May 07 Python
Python 处理表格进行成绩排序的操作代码
Jul 26 Python
Python学习笔记之函数的参数和返回值的使用
Nov 20 #Python
Python求解正态分布置信区间教程
Nov 20 #Python
Python pandas RFM模型应用实例详解
Nov 20 #Python
使用Python实现正态分布、正态分布采样
Nov 20 #Python
Python pandas自定义函数的使用方法示例
Nov 20 #Python
Python求正态分布曲线下面积实例
Nov 20 #Python
复化梯形求积分实例——用Python进行数值计算
Nov 20 #Python
You might like
CI框架数据库查询缓存优化的方法
2016/11/21 PHP
PHP简单实现模拟登陆功能示例
2017/09/15 PHP
用JS实现一个页面多个css样式实现
2008/05/29 Javascript
javascript获取设置div的高度和宽度兼容任何浏览器
2013/09/22 Javascript
将HTML的左右尖括号等转义成实体形式的两种实现方式
2014/05/04 Javascript
jQuery Masonry瀑布流插件使用详解
2014/11/17 Javascript
JavaScript返回网页中超链接数量的方法
2015/04/03 Javascript
在JavaScript中处理时间之getHours()方法的使用
2015/06/10 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
jquery中的工具使用方法$.isFunction, $.isArray(), $.isWindow()
2015/08/09 Javascript
js运动应用实例解析
2015/12/28 Javascript
ECharts仪表盘实例代码(附源码下载)
2016/02/18 Javascript
javascript原生ajax写法分享
2016/04/10 Javascript
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
使用weixin-java-tools完成微信授权登录、微信支付的示例
2018/09/26 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
[39:21]LGD vs OG 2019国际邀请赛淘汰赛 胜者组 BO3 第二场 8.24
2019/09/10 DOTA
Python黑帽编程 3.4 跨越VLAN详解
2016/09/28 Python
python操作MySQL 模拟简单银行转账操作
2017/09/27 Python
一百行python代码将图片转成字符画
2021/02/19 Python
Python中关于浮点数的冷知识
2019/09/22 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
Python sys模块常用方法解析
2020/02/20 Python
Mysql数据库反向生成Django里面的models指令方式
2020/05/18 Python
英国奢侈品牌时尚购物平台:Farfetch(支持中文)
2020/02/18 全球购物
物业客服专员岗位职责
2013/11/30 职场文书
行政执法队伍作风整顿个人剖析材料
2014/10/11 职场文书
社区综治工作汇报
2014/10/27 职场文书
2014年组织委员工作总结
2014/12/01 职场文书
入党宣誓大会后的感想
2015/08/10 职场文书
教师节祝酒词
2015/08/11 职场文书
2017元旦、春节期间廉洁自律承诺书
2016/03/25 职场文书
pandas中DataFrame检测重复值的实现
2021/05/26 Python
解决Python字典查找报Keyerror的问题
2021/05/26 Python
SpringBoot集成Druid连接池连接MySQL8.0.11
2021/07/02 Java/Android