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之编写类之一创建实例
Oct 11 Python
Python写的Tkinter程序屏幕居中方法
Mar 10 Python
Python中Django框架利用url来控制登录的方法
Jul 25 Python
Python3使用requests包抓取并保存网页源码的方法
Mar 15 Python
python 实现提取某个索引中某个时间段的数据方法
Feb 01 Python
Python判断对象是否相等及eq函数的讲解
Feb 25 Python
Django 项目通过加载不同env文件来区分不同环境
Feb 17 Python
python使用多线程+socket实现端口扫描
May 28 Python
python入门:argparse浅析 nargs='+'作用
Jul 12 Python
Python爬取12306车次信息代码详解
Aug 12 Python
如何通过Python实现RabbitMQ延迟队列
Nov 28 Python
Python OpenCV 图像平移的实现示例
Jun 04 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使用指定字符列表生成随机字符串的方法
2015/04/18 PHP
PHP Socket网络操作类定义与用法示例
2017/08/30 PHP
在PHP中输出JS语句以及乱码问题的解决方案
2019/02/13 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
datagrid框架的删除添加与修改
2013/04/08 Javascript
js弹窗返回值详解(window.open方式)
2014/01/11 Javascript
javascript 处理null及null值示例
2014/06/09 Javascript
js实现从数组里随机获取元素
2015/01/12 Javascript
Nodejs学习笔记之Global Objects全局对象
2015/01/13 NodeJs
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
详解js的延迟对象、跨域、模板引擎、弹出层、AJAX【附实例下载】
2016/12/19 Javascript
javascript工厂模式和构造函数模式创建对象方法解析
2016/12/30 Javascript
jquery设置css样式的多种方法(总结)
2017/02/21 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
layui固定下拉框的显示条数(有滚动条)的方法
2019/09/10 Javascript
解决微信小程序中的滚动穿透问题
2019/09/16 Javascript
[47:43]Alliance vs KG 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/18 DOTA
python3编码问题汇总
2016/09/06 Python
python 实现语音聊天机器人的示例代码
2018/12/02 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
Django时区详解
2019/07/24 Python
深入学习python多线程与GIL
2019/08/26 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
使用Python解析Chrome浏览器书签的示例
2020/11/13 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
2021/02/07 Python
详解Django中的FBV和CBV对比分析
2021/03/01 Python
CSS3 特效范例整理
2011/08/22 HTML / CSS
浅析canvas元素的html尺寸和css尺寸对元素视觉的影响
2019/07/22 HTML / CSS
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
索尼巴西商店:Sony巴西
2019/06/21 全球购物
2014年纪委工作总结
2014/12/05 职场文书
社会主义核心价值观主题教育活动总结
2015/05/07 职场文书
安全生产警示教育活动总结
2015/05/09 职场文书
房贷工资证明范本
2015/06/12 职场文书
周一给客户的问候语
2015/11/10 职场文书
Python Django框架介绍之模板标签及模板的继承
2021/05/27 Python