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让图片按照exif信息里的创建时间进行排序的方法
Mar 16 Python
介绍Python中的fabs()方法的使用
May 14 Python
Python 数据结构之堆栈实例代码
Jan 22 Python
python3实现全角和半角字符转换的方法示例
Sep 21 Python
django框架自定义模板标签(template tag)操作示例
Jun 24 Python
python使用mitmproxy抓取浏览器请求的方法
Jul 02 Python
Python While循环语句实例演示及原理解析
Jan 03 Python
tensorflow 报错unitialized value的解决方法
Feb 06 Python
python3利用Axes3D库画3D模型图
Mar 25 Python
python中使用input()函数获取用户输入值方式
May 03 Python
Django集成MongoDB实现过程解析
Dec 01 Python
python re模块和正则表达式
Mar 24 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中删除字符串中最先出现某个字符的实现代码
2013/02/03 PHP
采用memcache在web集群中实现session的同步会话
2014/07/05 PHP
PHP结合jQuery.autocomplete插件实现输入自动完成提示的功能
2015/04/27 PHP
php简单实现屏蔽指定ip段用户的访问
2015/04/29 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
php简单统计在线人数的方法
2016/05/10 PHP
window.onload和$(function(){})的区别介绍
2013/10/30 Javascript
js动态设置鼠标事件示例代码
2013/10/30 Javascript
浅谈checkbox的一些操作(实战经验)
2013/11/20 Javascript
jQuery 中DOM 操作详解
2015/01/13 Javascript
angular中使用路由和$location切换视图
2015/01/23 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
简单总结JavaScript中的String字符串类型
2016/05/26 Javascript
js Canvas实现圆形时钟教程
2016/09/19 Javascript
js阻止冒泡和默认事件(默认行为)详解
2016/10/20 Javascript
Vue数据驱动模拟实现5
2017/01/13 Javascript
layui中layer前端组件实现图片显示功能的方法分析
2017/10/13 Javascript
vue实现多个元素或多个组件之间动画效果
2018/09/25 Javascript
vue 递归组件的简单使用示例
2021/01/14 Vue.js
python实现的各种排序算法代码
2013/03/04 Python
PyQt5每天必学之事件与信号
2018/04/20 Python
Pipenv一键搭建python虚拟环境的方法
2018/05/22 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
python如何解析配置文件并应用到项目中
2019/06/27 Python
OpenCV+Python--RGB转HSI的实现
2019/11/27 Python
python爬虫爬取淘宝商品比价(附淘宝反爬虫机制解决小办法)
2020/12/03 Python
python爬虫爬取图片的简单代码
2021/01/18 Python
如何用Python徒手写线性回归
2021/01/25 Python
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
社区七一党员活动方案
2014/01/25 职场文书
月度优秀员工获奖感言
2014/08/16 职场文书
毕业生见习报告总结
2014/11/08 职场文书
家长通知书家长意见
2014/12/30 职场文书
七年级上册生物的课件
2019/08/07 职场文书
nginx如何将http访问的网站改成https访问
2021/03/31 Servers
MySQL提升大量数据查询效率的优化神器
2022/07/07 MySQL