【Python基础】Pandas笔记---概述与数据结构
共 2593字,需浏览 6分钟
·
2020-08-14 18:36
点击上方“潜心的Python小屋”关注我们,第一时间推送优质文章。
前言
大家好,我是潜心。因为最近做实验发现Pandas的数据处理技术忘记了,所以准备系统的概述一下Pandas的使用方法。
本文约1.5k字,预计阅读5分钟。
Pandas概览
Pandas 是 Python的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据。Pandas 的目标是成为 Python 数据分析实践与实战的必备高级工具,其长远目标是成为最强大、最灵活、可以支持任何语言的开源数据分析工具。
数据结构
Pandas 的主要数据结构是 Series(一维数据)与 DataFrame(二维数据),这两种数据结构足以处理金融、统计、社会科学、工程等领域里的大多数典型用例。
为什么要有两个数据结构? 因为Pandas 数据结构就像是低维数据的容器。比如,DataFrame 是 Series 的容器,Series 则是标量的容器。使用这种方式,可以在容器中以字典的形式插入或删除对象。
Pandas 里,轴的概念主要是为了给数据赋予更直观的语义,即用“更恰当”的方式表示数据集的方向。
Series
Series是带标签的一维数组,可存储整数、浮点数、字符串、Python 对象等类型的数据,轴标签统称为索引。
创建Series对象:
s = pd.Series(data=None, index=None)
其中,data
可以为:数组、字典、标量等,index
可选,长度必须与data一致,默认为数值型索引。
导入包:
import pandas as pd
import numpy as np
例:
In[5]: pd.Series([1, 2, 3, 4, 5])
Out[5]:
0 1
1 2
2 3
3 4
4 5
dtype: int64
In[6]: d = {'a':1, 'b':2, 'c':3}
In[7]: pd.Series(d)
Out[7]:
a 1
b 2
c 3
dtype: int64
Dataframe
DataFrame 是由多种类型的列构成的二维标签数据结构, 是最常用的 Pandas 对象。
创建DataFrame对象:
df = pd.DataFrame(data=None, index=None, columns=None, dtype=None)
其中,data
可以为:一维二维的ndarray、列表、字典等,index
为行标签(索引),columns
为列标签(特征),dtype
为对象类型。
例:
In[8]: d = {'one': pd.Series([1., 2., 3.], index=['a', 'b', 'c']), 'two': pd.Series([1., 2., 3., 4.], index=['a', 'b', 'c', 'd'])}
In[9]: pd.DataFrame(d)
Out[9]:
one two
a 1.0 1.0
b 2.0 2.0
c 3.0 3.0
d NaN 4.0
In[10]: l = [[1, 2, 3], [4, 5, 6]]
In[11]: pd.DataFrame(l, columns=['a', 'b', 'c'])
Out[11]:
a b c
0 1 2 3
1 4 5 6
大小可变与数据复制
Pandas 所有数据结构的值都是可变的,但数据结构的大小并非都是可变的,比如,Series 的长度不可改变,但 DataFrame 里就可以插入列。
Pandas 里,绝大多数方法都不改变原始的输入数据,而是复制数据,生成新的对象。一般来说,原始输入数据不变更稳妥。所以大多数方法都是返回一个对象,若不进行复制,那原对象不会进行改变。
In[12]: df1 = pd.DataFrame(d)
In[13]: df2 = df1.transpose()
In[14]: df1
Out[14]:
one two
a 1.0 1.0
b 2.0 2.0
c 3.0 3.0
d NaN 4.0
In[15]: df2
Out[15]:
a b c d
one 1.0 2.0 3.0 NaN
two 1.0 2.0 3.0 4.0
Pandas优势
Pandas的优势部分包括如下:
处理浮点与非浮点数据里的缺失数据,表示为 NaN
;大小可变:插入或删除 DataFrame 等多维对象的列; 自动、显式数据对齐:显式地将对象与一组标签对齐,也可以忽略标签,在 Series、DataFrame 计算时自动与数据对齐; 强大、灵活的分组(group by)功能:拆分-应用-组合数据集,聚合、转换数据; 把 Python 和 NumPy 数据结构里不规则、不同索引的数据轻松地转换为 DataFrame 对象; 基于智能标签,对大型数据集进行切片、花式索引、子集分解等操作;
总结
Pandas 速度很快,适用于各个数据分析领域,它的数据结构有Series
和DataFrame
两种结构,实际中主要是对DataFrame对象进行处理分析。接下来会根据各个实例数据集,如:鸢尾花、红酒、乳腺癌数据集进行实际操作,巩固Pandas数据分析技术。
参考文献
[1]. Pandas中文文档: https://www.pypandas.cn/docs/getting_started/overview.html
往期精彩回顾
获取一折本站知识星球优惠券,复制链接直接打开:
https://t.zsxq.com/662nyZF
本站qq群1003271085。
加入微信群请扫码进群(如果是博士或者准备读博士请说明):