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使用正则表达式提取网页URL的方法
May 26 Python
疯狂上涨的Python 开发者应从2.x还是3.x着手?
Nov 16 Python
用pandas按列合并两个文件的实例
Apr 12 Python
python3实现基于用户的协同过滤
May 31 Python
Python打开文件,将list、numpy数组内容写入txt文件中的方法
Oct 26 Python
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Jul 22 Python
Numpy对数组的操作:创建、变形(升降维等)、计算、取值、复制、分割、合并
Aug 28 Python
Python 脚本实现淘宝准点秒杀功能
Nov 13 Python
在python中计算ssim的方法(与Matlab结果一致)
Dec 19 Python
python 爬取疫情数据的源码
Feb 09 Python
Python pip安装第三方库实现过程解析
Jul 09 Python
用Python爬取各大高校并可视化帮弟弟选大学,弟弟直呼牛X
Jun 11 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 SEO优化之URL优化方法
2011/04/21 PHP
php解析json数据实例
2014/08/19 PHP
Yii框架实现图片上传的方法详解
2017/05/20 PHP
让Laravel API永远返回JSON格式响应的方法示例
2018/09/05 PHP
使用PHPUnit进行单元测试并生成代码覆盖率报告的方法
2019/03/08 PHP
PHP快速排序算法实现的原理及代码详解
2019/04/03 PHP
JavaScript CSS修改学习第一章 查找位置
2010/02/19 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
纯Javascript实现Windows 8 Metro风格实现
2013/10/15 Javascript
使用Js让Html中特殊字符不被转义
2013/11/05 Javascript
一个很有趣3D球状标签云兼容IE8
2014/08/22 Javascript
IE中鼠标经过option触发mouseout的解决方法
2015/01/29 Javascript
JavaScript实现图片DIV竖向滑动的方法
2015/04/25 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
使用 electron 实现类似新版 QQ 的登录界面效果(阴影、背景动画、窗体3D翻转)
2018/10/23 Javascript
JS高阶函数原理与用法实例分析
2019/01/15 Javascript
改变layer confirm弹窗按钮的颜色方法
2019/09/12 Javascript
解决Vue动态加载本地图片问题
2019/10/09 Javascript
Python操作Sql Server 2008数据库的方法详解
2018/05/17 Python
Python实现的json文件读取及中文乱码显示问题解决方法
2018/08/06 Python
python opencv将图片转为灰度图的方法示例
2019/07/31 Python
python批量图片处理简单示例
2019/08/06 Python
Python3 chardet模块查看编码格式的例子
2019/08/14 Python
Python集成开发工具Pycharm的安装和使用详解
2020/03/18 Python
Python实现异步IO的示例
2020/11/05 Python
CSS3径向渐变之大鱼吃小鱼之孤单的大鱼
2016/04/26 HTML / CSS
纯CSS3实现运行时钟的示例代码
2021/01/25 HTML / CSS
AmazeUI导航的示例代码
2020/08/14 HTML / CSS
自荐书格式
2013/12/01 职场文书
正规的求职信范文分享
2013/12/11 职场文书
电脑售后服务承诺书
2014/03/27 职场文书
三八红旗手先进事迹材料
2014/05/13 职场文书
实现中国梦思想汇报2014
2014/09/13 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
聊聊Lombok中的@Builder注解使用教程
2021/11/17 Java/Android