点击上方“潜心的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: int64In[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.0In[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 速度很快,适用于各个数据分析领域,它的数据结构有SeriesDataFrame两种结构,实际中主要是对DataFrame对象进行处理分析。接下来会根据各个实例数据集,如:鸢尾花、红酒、乳腺癌数据集进行实际操作,巩固Pandas数据分析技术。

参考文献

[1]. Pandas中文文档: https://www.pypandas.cn/docs/getting_started/overview.html

往期精彩回顾适合初学者入门人工智能的路线及资料下载机器学习及深度学习笔记等资料打印机器学习在线手册深度学习笔记专辑《统计学习方法》的代码复现专辑
AI基础下载机器学习的数学基础专辑获取一折本站知识星球优惠券,复制链接直接打开:https://t.zsxq.com/662nyZF本站qq群1003271085。加入微信群请扫码进群(如果是博士或者准备读博士请说明):

【Python基础】Pandas笔记---概述与数据结构相关推荐

  1. Python基础入门笔记(二)

    前言 本文主要为 Python基础入门笔记(一)内容的补充. 一.迭代器和生成器 1.1 Python迭代器 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元 ...

  2. Python基础学习笔记(一)

    Python基础学习笔记(一) 基本数据类型   整型(int):1.2.10--   浮点型(float):1.2.2.4.10.00--   布尔型(bool):True.False   字符串( ...

  3. Python基础学习笔记三

    Python基础学习笔记三 print和import print可以用,分割变量来输出 import copy import copy as co from copy import deepcopy ...

  4. Python基础学习笔记之(二)

    Python基础学习笔记之(二) zouxy09@qq.com http://blog.csdn.net/zouxy09 六.包与模块 1.模块module Python中每一个.py脚本定义一个模块 ...

  5. Python基础学习笔记之(一)

    Python基础学习笔记之(一) zouxy09@qq.com http://blog.csdn.net/zouxy09 前段时间参加微软的windows Azure云计算的一个小培训,其中Pytho ...

  6. python基础操作笔记

    python基础操作笔记 第二章 变量和简单的数据类型 #2.1输出数据hello world print('--------------------------------------------- ...

  7. Python 基础学习笔记 03

    Python基础系列 Python 基础学习笔记 01 Python 基础学习笔记 02 Python 基础学习笔记 03 Python 基础学习笔记 04 Python 基础学习笔记 05 文章目录 ...

  8. 8.Python基础学习笔记day8-正则表达式、网络编程、进程与线程

    8.Python基础学习笔记day8-正则表达式.网络编程.进程与线程 一.正则表达式 ''' 1. [1,2,3,4]中任意取3个元素排列: A43 = 4x3x2 = 24itertools.pe ...

  9. Python基础知识笔记

    文章目录 Python基础知识 教程:https://www.liaoxuefeng.com/wiki/1016959663602400 内置函数:https://docs.python.org/3/ ...

最新文章

  1. 到底会改名吗?微软GVFS 改名之争
  2. Kooboo CMS - Html.FrontHtml.Position 详解
  3. 理解随机森林:基于Python的实现和解释
  4. java中的stack类和C++中的stack类的区别
  5. python学习之列表的定义以及增删改查
  6. GSM BTS Hacking: 利用BladeRF和开源BTS 5搭建基站
  7. qtextedit 默认文案_QTextEdit的paste
  8. HDU 5950 Recursive sequence(矩阵快速幂)
  9. python 计算机程序设计-程序设计入门—Python
  10. 模仿c#Func和Action的函数指针模板
  11. 生产环境sql语句调优实战第三篇
  12. COM 组件设计与应用(二)——GUID 和 接口
  13. 世界国旗/地图:世界各国国旗图标整理/与echarts世界地图配置对应
  14. 神器!人工智能分离歌曲中的人声和背景音乐
  15. dell 恢复介质_戴尔介质恢复选项
  16. 生物信息分析员的编程小站
  17. 【一键激活win8.1系统】
  18. php-fpm的安装和启动
  19. Ubuntu 更换阿里云软件源
  20. 1.《如何阅读一本书》读书若谈恋爱:如何阅读一本书?

热门文章

  1. javascript对数值增加千分点/删除千分点
  2. Python 个人的失误记录之str.replace
  3. JS——样式类的添加
  4. ODI中web service介绍
  5. JK_Rush关于索引的一些总结
  6. matlab人工势场法三维演示图,人工势场法(Artificial Potential Field Method)的学习
  7. pojo java,什么是java pojo类,java bean,普通类?
  8. python enumerate_python中enumerate的用法实例解析
  9. 基因表达可视化工具使用指南
  10. 服务器中显示存储设备,服务器节点信息集中显示方法、系统、设备及存储介质...