Pyhton - 数据分析之pandas模块一览总表

http://pandas.pydata.org/docs/user_guide/10min.html
https://www.runoob.com/pandas/pandas-tutorial.html
https://geek-docs.com/pandas/pandas-tutorials/pandas-tutorial.html
分组Groupby用法详解:https://zhuanlan.zhihu.com/p/101284491

Pandas 一个强大的分析结构化数据的工具集,基础是 Numpy(提供高性能的矩阵运算)。pandas 这个名称来源于panel data(面板数据),从而可见其要处理的数据是多维度的而非单维度。

  • pandas 含有使数据清洗和分析工作变得更快更简单的数据结构与操作工具。经常是和其他工具一起使用,如数值计算工具NumPy和SciPy,分析库statsmodels与scikit-learn,以及数据可视化库matplotlib。
  • 可以读取较多类型的文件格式,从简单的txt、csv、json到excel,hdf5、pickle再到sas、sql、stata等等文件格式都有得以支持。
  • 可以对各种数据进行运算操作,比如归并、再成形、选择,还有数据清洗和数据加工特征。

Pandas和Numpy的区别

  • Numpy是以矩阵为基础的数学计算模块,是数值计算的扩展包。
  • Pandas主要做数据处理,提供了DataFrame的数据结构,契合统计分析的表结构,可用Numpy或其他方式进行计算。
  • NumPy是构建pandas的基础,后者大量借鉴了NumPy编码风格。

安装: pip install pandas

一、数据结构组成

Pandas包含以下三个数据结构:系列(Series),数据帧(DataFrame),面板(Panel)。

  • Series一维数组,序列,大小不可变,由同种数据类型元素组成。类似于python中的列表和Numpy中的Ndarray对象。在 Series 中包含的数据类型可以是整数,浮点数,字符串,python对象等。
    同种类型数据构成,大小不可变,数据可变。
  • DataFrame二维数组,大小可变的表格结构,它含有一组有序的列,每列可以是不同的数据类型(整型、字符串、
    布尔值等)。使用表格数据(DataFrame),在语义上只需要考虑行和列,而不是轴0和轴1。DataFrame既有行索引,也有列索引,它可以看作是Series组成的字典,不过这些Series共用一个索引。DataFrame是Series的容器。
    可以由不同的数据类型构成,大小可变,数据可变。含行索引和列索引,可以对行和列执行算术运算
  • Panel三维数组。Panel是DataFrame的容器。
    可以由不同的数据类型构成,大小可变,数据可变。
    Panel 相当于一个存储 DataFrame 的字典,3个轴(axis)分别代表意义如下:
    axis 0:items item 对应一个内部的数据帧(DataFrame)
    axis 1:major_axis 每个数据帧(DataFrame)的索引行
    axis 2:minor_axis 每个数据帧(DataFrame)的索引列

二、数据基本操作

1. 创建数据结构

函数 说明
pandas.Series( data, index, dtype, name, copy) 类似表格中的一个列(column),类似于一维数组,可以保存任何数据类型。Series 由索引(index)和列组成。如果没有指定索引,索引值就从 0 开始,我们可以根据索引值读取数据。data一组数据(支持多种数据类型,如ndarray,list,constants 类型)。index数据索引标签,索引值必须是唯一的,与data的长度相同,默认为np.arange(n),其中n是数组长度,即[0,1,2,3…. range(len(array))-1] - 1],从 0 开始。dtype数据类型,默认会自己判断。name设置名称copy拷贝数据,默认为 False。】
pandas.DataFrame( data, index, columns, dtype, copy) 是一个二维的数组结构,类似二维数组。data一组数据(ndarray、系列series, map, 列表list, 字典dict 等类型)。index索引值,或者可以称为行标签。columns列标签,默认为 RangeIndex (0, 1, 2, …, n) 。dtype数据类型copy拷贝数据,默认为 False。】
pandas.Panel(data, items, major_axis, minor_axis, dtype, copy) 创建 Panel。【data 支持多种数据类型,如ndarray,series,map,lists,dict,constant和其他数据帧(DataFrame)。items即axis=0。major_axis即axis=1。minor_axis即axis=2。dtype每列的数据类型。copy是否复制数据,默认为false。】
pandas.date_range(start=None, end=None, periods=None, freq=‘D’, tz=None, normalize=False, name=None, closed=None, **kwargs) 生成日期范围。【start开始时间。end结束时间。periods偏移量。freq频率,默认天,pd.date_range()默认频率为日历日,pd.bdate_range()默认频率为工作日。tz时区。name索引对象名称。normalize时间参数值正则化到午夜时间戳(这里最后就直接变成0:00:00,并不是15:30:00)。closed默认为None的情况下,左闭右闭,left则左闭右开,right则左开右闭。】pd.date_range(end=‘1/30/2017 15:00:00’, periods=10) # 增加了时、分、秒

在这里插入图片描述

2. 数据结构的属性和方法

属性或方法 描述
df.axes 返回 Series 索引列表。返回DataFrame行轴标签和列轴标签列表。
df.dtypes 返回 Series 数据类型。返回DataFrame每列的数据类型。
df.empty 返回布尔值,表示对象是否为空, 返回True表示对象为空。
df.ndim 返回对象的维数。根据定义,一个Series是一个一维数据结构,DataFrame是一个2D对象。
df.size 返回Series基础数据中的元素个数。返回 DataFrame 中的元素个数。
df.values 以ndarray形式返回 Series 中的实际数据值。将DataFrame中的实际数据作为NDarray返回。
df.T 返回DataFrame的转置,行和列将交换。
df.shape 返回表示DataFrame的维度的元组。 元组(a,b),其中a表示行数,b表示列数。

3. 读取/添加/删除

Pandas 索引和选择数据,Python和NumPy索引运算符"[]“和属性运算符”."可以快速轻松地访问Pandas数据结构。由于要访问的数据类型不是预先知道的,直接使用标准运算符具有一些限制。

索引 描述
df.loc[index_name, col_name] 按标签的行列交叉选取。基于标签(label),包括行标签(index)和列标签(colums),即行名称和列名称,可以使用def.loc[index_name, col_name]选择指定位置的数据。单个标量标签df.loc['a']选择的是 index 为’a’的一行。标签列表df.loc[['a', 'b', 'c']]只选择行。切片对象,在最终选择的数据数据中包含切片的 start 和 stop,df.loc['c' : 'h'] 即包含’c’行,也包含’h’行。布尔数组,用于筛选符合某些条件的行,可以使用 list, array, 也可以使用Series(使用Series时 index需要一致,否则会报 IndexError),df.loc[df.A>0.5] 筛选出所有’A’列大于0.5的行。】# df.loc[lambda df:[0,1]] 选择前两行
df.iloc() 按位置序号的行列交叉选取。基于整数的索引,利用元素在各个轴上的索引序号进行选择,序号超过范围产生IndexError,切片时允许序号超过范围。整数,与.loc相同,如果只使用一个维度则对行选择,小标从 0 开始,df.iloc[5]选择第 6 行。整数列表或者数组df.iloc[[5, 1, 7]]选择第 6 行, 第 2 行, 第 8 行。元素为整数的切片操作,与.loc不同,这里下标为 stop 的数据不被选择,df.iloc[0:3]只包含 0,1,2行,不包含第 3 行。布尔数组进行筛选, 可以使用 list 或者 array,使用 Series会出错(NotImplementedError 和 ValueError,前者是 Series 的 index 与待切片 DataFrame的index 不同时报错,后置 index 相同时报错),df.iloc[np.array(df.A>0.5)],df.iloc[list(df.A>0.5)]。】# df.iloc[lambda df:[0,1]] 选择前两行
df.ix() 基于标签和整数,进行选择和子集化对象的混合方法。在0.20.0中已经不建议使用了。
df[] 快捷的整行整列选取。【df[标签列表],选取多个整列。df[切片],选取整行(切片操作,选择的是列,并且必须使用列名。只能输入一个维度,不能用逗号隔开输入两个维度。)】# df[‘A’]
运算符. 属性访问,可以使用属性运算符.来选择列# df.A
import pandas as pd
d = {
   'one' : pd.Series([1, 2, 3]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值