Pandas 概览

Pandas 是 Python 的核心数据分析支持库,提供了快速、灵活、明确的数据结构,旨在简单、直观地处理关系型、标记型数据

  • 注:Pandas适合处理结构化数据,即适合处理的维度在行、列级别而不是在某一个数据、单元格。当前数据分析中比较流行的工具中,Excel的处理类别在某一个数据、单元格级别的数据,其他例如SQL,Pandas,Tableau等均适合处理的维度在行、列级别的数据。所以这就是为什么在分析中有结构化和足够干净的数据是非常重要的一点。

入门Pandas

安装pandas

最常用的方法依旧是通过pip安装:

pip install Pandas

其他安装方法在官网文档中有详细说明,这里不再赘述。安装文档地址

导入 Pandas

通过下列语句我们导入numpy包与pandas包

import numpy as npimport pandas as pd

Pandas数据结构

pandas有两种数据结构:

维数 名称 描述
1 Series 带标签的一维同构数组
2 DataFrame 带标签的,大小可变的,二维异构表格

Series就是只有一个字段/维度/列的数据,它的行数可变,但是列数只有一列。只不过带有标签(索引),而DataFrame就是我们最常见的二维表,有行有列,行数和列数都是可变的。

  • 注:二维表是所有数据编程语言接受的表格式,所以在对原始数据处理时需要将原始数据整理成二维表的格式。理论上设计合理的二维表格式可以转变为任意的表格式,并且利于处理和计算。

对象创建

接下来我们分别来创建一个Series和DataFrame结构的数据:

通过传入一些值的列表来创建一个Series,Pandas会自动创建一个默认的整数索引

#创建series数组,使用pd.Series
s = pd.Series([1, 3, 5, np.nan, 6, 8])#非ipython直接使用print打印出数据即可。
In [4]: s
Out[4]:
0    1.0
1    3.0
2    5.0
3    NaN
4    6.0
5    8.0
dtype: float64
  • 注:NaN在pandas中表示缺失数据,可以使用np.nan增加一个缺失数据

同时,还可以通过传入元组,数组,字典等来创建一个series,一般比较常见的其他创建方法如下:

# 利用实数创建Series 并指定key
s1 = pd.Series(3, index=list("a"))#利用列表创建series
#使用list函数可以将字符串,元组等数据结构转化为列表的数据结构
s2 = pd.Series(list("abcdfgdhsdafcv"))#利用元祖创建series
s3 = pd.Series(tuple("sdfacdfgd"))#利用数组创建series
s4 = pd.Series(numpy.array(list([1, 2, 3, 4, 5, 6, 7, 8, 9])))#利用字典创建series
dictionary1 = {"name": "nick", "age": 12, "sex": "male"}
s5 = pd.Series(dictionary1)

同样创建DataFrame使用pd.DataFrame,也可以通过传入不同的数据结构来创建:

#利用series创建dataframe
dictionary4 = {"name": "nick", "age": 12, "sex": "male"}
s4 = pd.Series(data=dictionary4)
d4 = pd.DataFrame(data=s4)#利用嵌套字典创建dataframe
dictionary5 = {"A":{"name": "nick", "age": 12, "sex": "male"},"B":{"name": "nick", "age": 12, "sex": "male"}}
s5 = pd.DataFrame(data=dictionary5)#利用嵌套集合创建dataframe
s6 = pd.DataFrame(data=list([[1, 2, 3, 4], ["a", "b", "c", "d"]]))#利用numpy嵌套数组创建dataframe
s7 = pd.DataFrame(data=numpy.array(list([[1, 2, 3, 4], ["a", "b", "c", "d"]])))#利用字典创建dataframe
s8 = pd.DataFrame.from_dict(data={"name": "nick", "age": 12, "sex": "male"}, orient="index")

也可以通过读取文件,可以是json,csv,excel,SQL结果数据等等来创建一个Dataftame

#通过导入excel文件的方法来创建一个dataframe,这里要注意,如果用excel请先安装xlrd这个包
excel_pd=pd.read_excel("pandas_demo.xlsx")

接下来看一个官网给出的例子:

In [9]: df2 = pd.DataFrame({'A': 1.,'B': pd.Timestamp('20130102'),'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'})In [10]: df2
Out[10]: A          B    C  D      E    F
0  1.0 2013-01-02  1.0  3   test  foo
1  1.0 2013-01-02  1.0  3  train  foo
2  1.0 2013-01-02  1.0  3   test  foo
3  1.0 2013-01-02  1.0  3  train  foo

可以查看一下上述DataFrame 的列类型:

In [11]: df2.dtypes
Out[11]:
A           float64
B    datetime64[ns]
C           float32
D             int32
E          category
F            object
dtype: object

查看数据

查看 DataFrame 头部和尾部数据,head()和tail()默认返回五行数据,添加指定的数字可以改变返回的行数

In [13]: df.head()
Out[13]: A         B         C         D
2013-01-01  0.469112 -0.282863 -1.509059 -1.135632
2013-01-02  1.212112 -0.173215  0.119209 -1.044236
2013-01-03 -0.861849 -2.104569 -0.494929  1.071804
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401In [14]: df.tail(3)
Out[14]: A         B         C         D
2013-01-04  0.721555 -0.706771 -1.039575  0.271860
2013-01-05 -0.424972  0.567020  0.276232 -1.087401
2013-01-06 -0.673690  0.113648 -1.478427  0.524988

显示索引与列名

#显示索引
In [15]: df.index
Out[15]:
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04','2013-01-05', '2013-01-06'],dtype='datetime64[ns]', freq='D')#显示列名
In [16]: df.columns
Out[16]: Index(['A', 'B', 'C', 'D'], dtype='object')

DataFrame.to_numpy() 输出底层数据的 NumPy 对象。注意,DataFrame 的列由多种数据类型组成时,该操作耗费系统资源较大,这也是 Pandas 和 NumPy 的本质区别:NumPy 数组只有一种数据类型,DataFrame 每列的数据类型各不相同。 如果DataFrame 包含了多种类型,DataFrame.to_numpy() 操作就会耗费较多资源

In [17]: df.to_numpy()
Out[17]:
array([[ 0.4691, -0.2829, -1.5091, -1.1356],[ 1.2121, -0.1732,  0.1192, -1.0442],[-0.8618, -2.1046, -0.4949,  1.0718],[ 0.7216, -0.7068, -1.0396,  0.2719],[-0.425 ,  0.567 ,  0.2762, -1.0874],[-0.6737,  0.1136, -1.4784,  0.525 ]])

describe() 可以快速查看数据的统计摘要:

In [19]: df.describe()
Out[19]: A         B         C         D
count  6.000000  6.000000  6.000000  6.000000
mean   0.073711 -0.431125 -0.687758 -0.233103
std    0.843157  0.922818  0.779887  0.973118
min   -0.861849 -2.104569 -1.509059 -1.135632
25%   -0.611510 -0.600794 -1.368714 -1.076610
50%    0.022070 -0.228039 -0.767252 -0.386188
75%    0.658444  0.041933 -0.034326  0.461706
max    1.212112  0.567020  0.276232  1.071804

Pandas包(一):Pandas入门与对象的创建查看相关推荐

  1. python封装成exe后运行失败_Python的带pandas包的程序封装成exe 2018-01-11

    前言: 今天在网上看了很多教程,最后还是在运行pyinstaller命令行时解决 环境配置:python 2.7.9 32位,setuptools 19.2版,WIN 64位 1.安装PyInstal ...

  2. python数据分析包pandas论文_python数据分析pandas包入门学习(一)pandas数据结构介绍...

    本文参考<利用python进行数据分析>的第五章 pandas入门python 1 pandas数据结构介绍 pandas有两种主要的数据结构:series和DataFrame Serie ...

  3. 媲美Pandas?一文入门Python的Datatable操作

    作者 | Parul Pandey 译者 | linstancy 责编 | Jane 出品 | Python大本营(id:pythonnews) [导读]工具包 datatable 的功能特征与 Pa ...

  4. python怎么安装pandas模块-如何在Python 3中安装pandas包和使用数据结构

    介绍 Python pandas包用于数据操作和分析,旨在让您以更直观的方式处理标记或关系数据. 基于numpy软件包构建,pandas包括标签,描述性索引,在处理常见数据格式和丢失数据方面特别强大. ...

  5. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主

    利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目 ...

  6. pandas python2_Python随笔 | Pandas入门(二)

    #文章首发于公众号"如风起". 原文链接:Python随笔 | Pandas入门(二)​mp.weixin.qq.com​Pandas是Python的一个基于NumPy的数据分析包 ...

  7. python 去除panda安装包_沉淀,再出发:python中的pandas包

    沉淀,再出发:python中的pandas包 一.前言 python中有很多的包,正是因为这些包工具才使得python能够如此强大,无论是在数据处理还是在web开发,python都发挥着重要的作用,下 ...

  8. Python数据分析三剑客学习笔记Day3——pandas包的使用:认识series类型,DataFrame类型,读取excel表格数据及数据操作

    本文是视频Python数据分析三剑客 数学建模基础 numpy.pandas.matplotlib的学习笔记. -------------------------------------------- ...

  9. python pandas包,Python的常用包pandas,numpy

    Pandas 1.DataFrame 和 Series 的介绍import pandas as pd    #导入pandas 包 array = [[1,2,3],[3,4,5]]   #创建列表 ...

最新文章

  1. 程序员面试100题之三:不用+、-、×、÷数字运算符做加法
  2. 产品原型设计的参考步骤
  3. accp8.0转换教材第1章多线程理解与练习
  4. TCP超时设置的客户端重发5次
  5. 整数的二进制表示中 1 的个数
  6. java 的记住用户名和密码,JAVA--高级基础开发Cookie实现记住用户名和密码
  7. 信道容量受哪三个要素_好的餐饮店门头招牌应该怎么设计呢?需要具备哪些要素?...
  8. 单片机(ISIS 7 Professional):简易8x8矩阵LED灯代码项目
  9. 京东联盟高级API - 高并发京东联盟转链接口 京东客转链接口 京粉转链接口 京东联盟接口,线报无广告接口
  10. 如何将根证书预置到chromium浏览器中
  11. 渝北统景碑口规划开发_渝北区碑口水库主体工程开建
  12. 【Unity Shader】渲染纹理实现镜子效果
  13. (Hadoop、HBase、Kafka)中,Zookeeper都作为核心组件使用
  14. Eclipse初始化
  15. 小学生都看得懂的C语言入门(1): 基础/判别/循环
  16. 获取当天或某天的开盘价
  17. 逻辑思维不强的适合学java嘛_逻辑思维能力的培养很重要吗
  18. 组长偷偷通知裁员名单有我,但HR却迟迟不找,现在没人布置工作,天天闲着好尴尬!...
  19. mysql逻辑结构博客_mysql梳理2
  20. 山东新华书店招聘计算机岗位试题,2020山东新华书店招聘考试都考什么

热门文章

  1. matlab中clear的功能,matlab中clc,close,close all,clear,clear all作用区别
  2. python提现_赶紧参加微信支付获取微信提现免费额度
  3. ZZULIOJ 1148: 组合三位数之一
  4. 西安达刚公路机电科技有限公司董事长李太杰简介
  5. android入门整理
  6. 搭建电商系统平台需要多少钱?
  7. 天融信上网行为管理系统设置wifi短信验证流程
  8. 不怕有错误,就怕没错误(1)
  9. 小远qq1611532647淘宝主图设计
  10. docker添加新的环境变量_Docker容器环境变量设置与查看