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 相关文章推荐
Python3搜索及替换文件中文本的方法
May 22 Python
Python 正则表达式的高级用法
Dec 04 Python
Python如何读取MySQL数据库表数据
Mar 11 Python
Python科学画图代码分享
Nov 29 Python
在python中实现对list求和及求积
Nov 14 Python
Python3.5常见内置方法参数用法实例详解
Apr 29 Python
Win10 安装PyCharm2019.1.1(图文教程)
Sep 29 Python
使用python 计算百分位数实现数据分箱代码
Mar 03 Python
python实现简单遗传算法
Sep 18 Python
浅析Python 字符编码与文件处理
Sep 24 Python
Numpy实现卷积神经网络(CNN)的示例
Oct 09 Python
python中%格式表达式实例用法
Jun 18 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+DBM的同学录程序(2)
2006/10/09 PHP
libmysql.dll与php.ini是否真的要拷贝到c:\windows目录下呢
2010/03/15 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
PHP使用Alexa API获取网站的Alexa排名例子
2014/06/12 PHP
百度工程师讲PHP函数的实现原理及性能分析(一)
2015/05/13 PHP
php输出图像的方法实例分析
2017/02/16 PHP
php封装的mongodb操作类代码
2017/08/06 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
javascript 鼠标滚轮事件
2009/04/09 Javascript
javascript模拟枚举的简单实例
2014/03/06 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
js console.log打印对像与数组用法详解
2016/01/21 Javascript
js替换字符串中所有指定的字符(实现代码)
2016/08/17 Javascript
JavaScript九九乘法口诀表的简单实现
2016/10/04 Javascript
深入理解vue2.0路由如何配置问题
2017/07/18 Javascript
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
angular4 如何在全局设置路由跳转动画的方法
2017/08/30 Javascript
.vue文件 加scoped 样式不起作用的解决方法
2018/05/28 Javascript
JavaScript设计模式之职责链模式应用示例
2018/08/07 Javascript
浅谈从React渲染流程分析Diff算法
2018/09/08 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
layer扩展打开/关闭动画的方法
2019/09/23 Javascript
vue 单页应用和多页应用的优劣
2020/10/22 Javascript
JavaScript实现点击切换验证码及校验
2021/01/10 Javascript
简单了解Python下用于监视文件系统的pyinotify包
2015/11/13 Python
Flask框架的学习指南之开发环境搭建
2016/11/20 Python
Python操作Redis之设置key的过期时间实例代码
2018/01/25 Python
python实现聊天小程序
2018/03/13 Python
css3 图片圆形显示 如何CSS将正方形图片显示为圆形图片布局
2014/10/10 HTML / CSS
运动会入场词60字
2014/02/15 职场文书
小学教师个人先进事迹材料
2014/05/17 职场文书
运动会加油稿100字
2014/09/19 职场文书
当你焦虑迷茫时,请读读这6句话
2019/07/24 职场文书
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
适合后台管理系统开发的12个前端框架(小结)
2021/06/29 Javascript
JavaScript分页组件使用方法详解
2021/07/26 Javascript