【数据分析】:Pandas中的三大数据类型:Series类型、DataFrame类型以及 Index 类型

一、关于Pandas

【简介】: pandas是建立在Numpy基础上的高效数据分析处理库,是Python的重要数据分析库。pandas提供了众多的高级函数,极大地简化了数据处理的流程,尤其是被广泛地应用于金融领域的数据分析。

【学习参考】pandas官网: http://pandas.pydata.org/

pandas

二、Pandas特点

pandas主要特点主要有以下几个方面,力图营造一个Pandas共呢能十分强大的印象:

  • 带有标签的数据结构,Pandas库主要围绕Series类型(一维)和DataFrame类型(二维)这两种数据结构。
  • 允许简单索引多级索引
  • 轻松处理浮点数据中的丢失数据(以NaN表示)以及非浮点数据;
  • 功能强大,灵活的按组功能来执行对数据集拆分申请,联合行动,对于聚合和转换数据;
  • 可以轻松地将其他Python和NumPy数据结构中的不同索引的数据转换为DataFrame对象;
  • 基于智能标签的切片,花式索引和 大型数据集的子集;
  • 直观的合并和连接数据集;
  • 数据集的灵活的重塑和旋转

【重点指南】:下面将重点介绍pandas 中的三大数据结构:Series、DATa Frame、Index;


三、Series类型

【介绍】:Series可以运用ndarray或字典的几乎所有索引操作和函数,融合了字典和ndarray的优点。

# 导入包
import numpy as np
import pandas as pd
运行环境-基于jupyter-notebook
1、把series当成Numpy的数组来操作
data[1:3]

输出:
1    0.50
2    0.75
dtype: float64

【注释】:Series定义时,可以自己指定索引。

2、将Series当成一个特殊的字典
population_dict = {'Californis':345987634,'New York':40768934,'Florida':76543212,'Illinois':156898456}
population = pd.Series(population_dict)
population
Series

【注释】:Series可以像访问字典一样的访问,但是Series比字典强大,支持数组形式的操作;

population['Californis']
population['New York':'Californis']
3、创建series对象

基本形式:pd.Series(data,index=index),(index是可选参数)。

  • data 可以是列表或者numpy 数组;
  • data 可以是一个标量。创建时会被重复填充到各个索引上。
  • data 可以是一个字典;


    创建series对象.png

【注释】:每一种创建方式,都可以通过指定的索引,筛选需要的结果;


四、DataFrame类型

【介绍】:DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。

(1)、将DataFrame对象当成Numpy数组
area_dict= {'Californis':336784,'New York':4908874,'Florida':43212,'Illinois':12986}
area = pd.Series(area_dict)
states = pd.DataFrame({'population':population,'area':area})
states
获取DataFrame索引对象
# 行索引对象
states.index
# 列索引对象
states.columns
# 默认按列获取数据
states['population']
(2)、创建DataFrame对象
1、通过Series创建
area_dict= {'Californis':336784,'New York':4908874,'Florida':43212,'Illinois':12986}
area = pd.Series(area_dict)
pd.DataFrame(population,columns=['population']) 
# columns: 用来指定列的索引名称;
---
输出:
           population
Californis  345987634
New York    40768934
Florida    76543212
Illinois    156898456
2、通过字典列表创建
data = [{'a':i,'b':2*i} for i in range(3)]
pd.DataFrame(data)

---
输出:
    a   b
0   0   0
1   1   2
2   2   4

【注释】: 如果字典中有些键不存在,Pandas 会用缺失值NaN来表示


3、通过Series对象字典来创建
pd.DataFrame({'population':population,'area':area})

--
输出:

           population   area
Californis  345987634   336784
New York    40768934    4908874
Florida 76543212    43212
Illinois    156898456   12986
4、通过Numpy 的二维数组创建
5、从Numpy 的结构化数组创建

【小提示】:默认情况下,Dataframe和Series之间的算术运算会将Series的索引匹配到的Dataframe的列,沿着列一直向下传播。若索引找不到,则会重新索引产生并集。


五、 Index 类型

【介绍】: pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。Index对象不可修改,从而在多个数据结构之间安全共享。

(1)使用Pandas创建Index对象
  • 1、将Index看做不可变得数组
ind[1]
ind[::2]
print(ind.size,ind.shape, ind.ndim,ind.dtype)

# Index 对象:拥有与Numpy数组相似的属性
# 注意,Index对象是不可变的,这样使得多个Series或者DataFrame之间共享数据更安全。
  • 2、将Index看做有序的集合


(2)Pandas属性与方法汇总
属性或方法 说明
axes 返回行轴标签列表
dtype/dtypes 返回对象的数据类型
empty 如果系列为空,则返回True
ndim 返回底层数据的维数
size 元素总数
values 将系列作为ndarray返回
head() 返回前n行
tail() 返回最后n行
T 转置行和列,适用于DataFrame

关于更多Pandas的使用,可参考:https://blog.csdn.net/lolita0164/article/details/80258990


最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,588评论 6 496
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,456评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,146评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,387评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,481评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,510评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,522评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,296评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,745评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,039评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,202评论 1 343
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,901评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,538评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,165评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,415评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,081评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,085评论 2 352

推荐阅读更多精彩内容