本学习笔记来自于莫烦Python,原视频链接

一、Pandas基本介绍和使用

Series数据结构:索引在左,值在右

import pandas as pd
import numpy as np
s = pd.Series([1,3,6,np.nan,44,1]) print(s)
"""
0 1.0
1 3.0
2 6.0
3 NaN
4 44.0
5 1.0
dtype: float64
"""

DataFrame数据结构:表格型数据结构,包含一组有序的列,每列的值类型可以是不同的。它既有行索引也有列索引,可以看做是Series组成的大字典。

dates = pd.date_range('',periods=6)
df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
print(df) """ a b c d 2016-01-01 -0.253065 -2.071051 -0.640515 0.613663 2016-01-02 -1.147178 1.532470 0.989255 -0.499761 2016-01-03 1.221656 -2.390171 1.862914 0.778070 2016-01-04 1.473877 -0.046419 0.610046 0.204672 2016-01-05 -1.584752 -0.700592 1.487264 -1.778293 2016-01-06 0.633675 -1.414157 -0.277066 -0.442545 """

DataFrame的三种创建方法

  1. df = pd.DataFrame(np.random.randn(6,4),index=dates,columns=['a','b','c','d'])
    

    即指定了行与列的标签

  2. df1 = pd.DataFrame(np.arange(12).reshape((3,4))) 不指定行与列的标签,默认为从0开始生成index
  3. 对每一的数据进行特殊对待
df2 = pd.DataFrame({'A' : 1.,
            'B' : pd.Timestamp(''),
'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
'D' : np.array([3] * 4,dtype='int32'),
'E' : pd.Categorical(["test","train","test","train"]),
'F' : 'foo'})

其中‘A’,‘B’等为列标签

属性或方法

功能

df.dtypes 查看数据类型
df.index 查看行名称
df.columns 查看列名称
df.values 查看所有df的值
df.describe() 查看count,mean,std,min等数据总结
df.T df的转置
df.sort_index(axis=1,ascending=False) 对数据索引排序输出
df.sort_values(by='column_name') 对数据值排序输出

二、利用Pandas选择数据

简单筛选

#选择df中列名称为A的元素
df.['A']
df.A
#选择一到三行的数据
df[0:3]

通过pandas的内置函数筛选

根据标签筛选 loc

#通过标签选择数据,可以选择某几行或某几列
#选择行标签为‘20130102’,列标签为‘A’或‘B’的数据
df.loc['',['A','B']]

根据位置筛选 iloc

#选择行位置3-5,列位置1-3的数据
df.iloc[3:5,1:3]
#选择行位置为1,3,5,列位置为1-3的数据
df.iloc[[1,3,5],1:3]

根据标签和位置的混合筛选 ix

#选择行位置为0-3,列名称为'A','C'的数据
df.ix[:3,['A','C']]

根据布尔表达式进行筛选

#选出‘A’的值大于8的所有数据
df[df.A>8]
'''
A B C D
2013-01-04 12 13 14 15
2013-01-05 16 17 18 19
2013-01-06 20 21 22 23
'''

Pandas学习笔记的更多相关文章

  1. Pandas 学习笔记

    Pandas 学习笔记 pandas 由两部份组成,分别是 Series 和 DataFrame. Series 可以理解为"一维数组.列表.字典" DataFrame 可以理解为 ...

  2. 【转】Pandas学习笔记(七)plot画图

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  3. 【转】Pandas学习笔记(六)合并 merge

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  4. 【转】Pandas学习笔记(五)合并 concat

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  5. 【转】Pandas学习笔记(四)处理丢失值

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  6. 【转】Pandas学习笔记(三)修改&添加值

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  7. 【转】Pandas学习笔记(二)选择数据

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  8. 【转】Pandas学习笔记(一)基本介绍

    Pandas学习笔记系列: Pandas学习笔记(一)基本介绍 Pandas学习笔记(二)选择数据 Pandas学习笔记(三)修改&添加值 Pandas学习笔记(四)处理丢失值 Pandas学 ...

  9. pandas学习笔记(一)

    Pandas是一款开放源码的BSD许可的Python库,为Python编程语言提供了高性能,易于使用的数据结构和数据分析工具.Pandas用于广泛的领域,包括金融,经济,统计,分析等学术和商业领域.在 ...

随机推荐

  1. Sublime 3基于python环境的使用

    .Ctrl+Shift+R 自动调整格式 打开Sublime Text 新建一个Python的编译系统 { "cmd": ["C:\\python\\python.exe ...

  2. scrapy分布式爬虫scrapy_redis一篇

    分布式爬虫原理 首先我们来看一下scrapy的单机架构:     可以看到,scrapy单机模式,通过一个scrapy引擎通过一个调度器,将Requests队列中的request请求发给下载器,进行页 ...

  3. django(权限、认证)系统—— 基于Authentication backends定制

    在这篇文章中,我们进行最后关于DjangoPermission系统的探讨,来谈谈关于Permission系统后台接口和扩展后台接口的开发. Django实现的这套permission体系,在底层被抽象 ...

  4. composer的安装方法

    网上说的方法几乎都不正确,经作者总结,终于知道怎么使用composer的方法.第一,从http://docs.phpcomposer.com/下载安装包:composer.phar 第二,把安装包放在 ...

  5. &&和&、||和|的区别

    && 和 || 为短路与 短路或&&若前面的表达式为false,整个逻辑表达式为false,所以后面的表达式无论true和false都无法影响整个表达式的逻辑结果,所以 ...

  6. indexer.go

    package) ; , ].DocId,:],)) :],) :], , ] ; ];]--],]) , ) )) )-b+b*d/avgDocLength)) , ;].locations[ind ...

  7. 新版知乎登录之post请求

    前言 在上一篇文章中给大家讲解了requests发送post请求的几种方式,并分析了一些使用陷阱. 疑惑 在文章发表之后,有朋友给我留言说,知乎登录就没有使用提交Form表单(application/ ...

  8. 让 IE支持圆角的方法

    1.在你的网页加载 PIE.js 脚本. 注意,用IE专用的注释,防止非IE浏览器下载.<!--[if lt IE 10]><script type="text/javas ...

  9. 死磕 java集合之LinkedTransferQueue源码分析

    问题 (1)LinkedTransferQueue是什么东东? (2)LinkedTransferQueue是怎么实现阻塞队列的? (3)LinkedTransferQueue是怎么控制并发安全的? ...

  10. 自己动手编译Android(LineageOS)源码

    准备 设备:红米3s 设备代号:land Android版本:7.1.1 源码提供:Lineage PC配置: 系统:Ubuntu16.04 x64 至少12G RAM 至少80GB 剩余硬盘空间 良 ...