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和C语言混合编程实例
Jun 04 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
在Python中使用CasperJS获取JS渲染生成的HTML内容的教程
Apr 09 Python
Django中login_required装饰器的深入介绍
Nov 24 Python
Python解决走迷宫问题算法示例
Jul 27 Python
python绘制中国大陆人口热力图
Nov 07 Python
python实现视频读取和转化图片
Dec 10 Python
python、PyTorch图像读取与numpy转换实例
Jan 13 Python
使用python 的matplotlib 画轨道实例
Jan 19 Python
快速解决jupyter notebook启动需要密码的问题
Apr 21 Python
Python3 pywin32模块安装的详细步骤
May 26 Python
python实现商品进销存管理系统
May 30 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
PHP中for与foreach的区别分析
2011/03/09 PHP
php mongodb操作类 带几个简单的例子
2016/08/25 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
javascript[js]获取url参数的代码
2007/10/17 Javascript
通过JS 获取Mouse Position(鼠标坐标)的代码
2009/09/21 Javascript
jQuery学习笔记(1)--用jQuery实现异步通信(用json传值)具体思路
2013/04/08 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
js 加密压缩出现bug解决方案
2014/11/25 Javascript
javascript手风琴下拉菜单实现代码
2015/11/12 Javascript
详解JavaScript时间处理之几个月前或几个月后的指定日期
2016/12/21 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
2016/12/30 Javascript
jQuery+ajax实现修改密码验证功能实例详解
2017/07/06 jQuery
在nginx上部署vue项目(history模式)的方法
2017/12/28 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
JS基于开关思想实现的数组去重功能【案例】
2019/02/18 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
Javascript数组方法reduce的妙用之处分享
2019/06/10 Javascript
vue-router的钩子函数用法实例分析
2019/10/26 Javascript
javascript实现留言板功能
2020/02/08 Javascript
[01:07:22]2014 DOTA2华西杯精英邀请赛 5 24 DK VS VG加赛
2014/05/26 DOTA
Python实现压缩和解压缩ZIP文件的方法分析
2017/09/28 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
Python 实现数据结构-堆栈和队列的操作方法
2019/07/17 Python
tensorflow 实现从checkpoint中获取graph信息
2020/02/10 Python
python 实现在shell窗口中编写print不向屏幕输出
2020/02/19 Python
如何基于python对接钉钉并获取access_token
2020/04/21 Python
为什么说python更适合树莓派编程
2020/07/20 Python
Python __slots__的使用方法
2020/11/15 Python
python 如何上传包到pypi
2020/12/24 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
澳大利亚家用电器在线商店:Billy Guyatts
2020/05/05 全球购物
医学类导师推荐信范文
2013/11/19 职场文书
社区健康教育实施方案
2014/03/18 职场文书
工作失职造成投诉的检讨书范文
2014/10/05 职场文书
CSS3实现模糊背景的三种效果示例
2021/03/30 HTML / CSS
SQL注入篇学习之盲注/宽字节注入
2022/03/03 MySQL