Duduk的python Pandas库学习笔记(基础入门)

导入时通常给予别名 ”pd“ 

import pandas as pd

         Pandas是一个标签库。

        与Numpy结合 使用,以Numpy数组的方式储存数据。类比于Python中列表与字典

一、对象的创建

        1.1一维对象创建  pd.Seres()

大写的S

                1)字典创建法

先创建字典,后生成sr

dict1={"a":0,"b":1,"c":2,"d":3,"e":4,"f":5}
#生成字典  {'a': 0, 'b': 1, 'c': 2, 'd': 3, 'e': 4, 'f': 5}
sr=pd.Series(dict1)
#a    0
#b    1
#c    2
#d    3
#e    4
#f    5
#dtype: int64            sr的内容,储存方式为数组

赋予每一个值一个索引 

                2)数组创建法

直接输入参数生成,需要两个参数

pd.Series(  值value--列表,数组都可以  ,  键index  ) 

index可不输入,默认从0开始的顺序数字。

key=["a","b","c","d","e","f"]        #先创建键
value=[0,1,2,3,4,5]                  #创建值
sr=pd.Series(value,key)
#a    0
#b    1
#c    2
#d    3
#e    4
#f    5
#dtype: int64                    与使用字典创建法创建出的一维对象一致

         1.2退化Pandas为Numpy

单独查看Pandas的value或key都可以。

        1.3二维对象的创建  pd.DataFrame()

                1)字典创建法 

v1=[13,19,47,55]
i=["1号","2号","3号","4号"]
sr1=pd.Series(v1,i)
sr1
#1号    13
#2号    19
#3号    47
#4号    55
#dtype: int64
v2=["男","女","女","男"]
sr2=pd.Series(v2,i)
sr2
#1号    男
#2号    女
#3号    女
#4号    男
#dtype: object
df=pd.DataFrame({"年龄":sr1,"性别":sr2})
df
#    年龄 性别
#1号  13  男
#2号  19  女
#3号  47  女
#4号  55  男

 其中,字典的键为矩阵列标签,值就是一列的数据

创建一维对象,长度不同时会报错!!!!!!!!!!! 

创建二维对象,长度不同时会取交集,导致一定的缺失。(缺失值为NaN

                2)数组创建法

直接输入三个参数 ,(值value,行标签index,列标签columns)

后两者可省略,省略时默认从0开始的顺序数字。

v=[[13,"女"],[24,"男"],[37,"女"],[78,"男"]]
i=["1号","2号","3号","4号"]
c=["年龄","性别"]
df=pd.DataFrame(v,i,c)
df
#    年龄 性别
#1号  13  女
#2号  24  男
#3号  37  女
#4号  78  男

二维对象的index与value都为numpy数组形式

二、对象的索引

显式索引,隐式索引。

显式(loc)为使用其对象提供的索引。

隐式(iloc)为使用数组本身自带的从0开始。

与numpy一样可以使用花式索引。但输出对象不一定是向量,可为矩阵。

        2.1访问切片(仅是视图)

显示的1:3可以包含有3,左闭右闭。

隐式和列表相同,左闭右开。

一维对象可以去掉索引器,二维不可

修改元素时,不加索引器容易发生未知变化!!!!!

三、对象的变形

        3.1转置  .T  

行列转置。

df=df.T
df
#    1号  2号  3号  4号
#年龄  13  24  37  78
#性别   女   男   女   男
df=df.T
df
#    年龄 性别
#1号  13  女
#2号  24  男
#3号  37  女
#4号  78  男

        3.2翻转(借助隐式索引)

df=df.iloc[:,::-1]        #左右翻转
df=df.iloc[::-1,:]        #上下翻转

        3.3对象的重塑

.reshape 不再适用,但仍可做到 sr 并入 df ,或 df 割出 sr

df[列标签]=sr        #并入
sr=df[列标签]        #割出

        3.4对象的拼接  pd.concat()

 Pandas对象放弃了不可重复的特性。

检查重复性,需使用 .is_unique 检查,返回True则无重复

                1)一维与二维对象的合并

使用重塑并入即可。

                2)二维对象相互合并

增多一个参数axis。

axis=1,列的方向合并,不增多行(左右合并)

axis=0或不输入,默认行添加(上下合并)

四、对象的运算

        4.1对象与系数的运算

                1)一维对象直接运算

结果是对其内部逐项运算。

                2)二维对象指定列特征

结果是该列特征逐项运算。

        4.2对象与对象运算

对象做运算,必须保证都是数字对象,两个对象的维度可以不同

                1)一维对象之间

直接运算,逐项输出,如果行数或列数不同,则多余部分输出为NaN(缺失值)

                2)二维对象之间

直接运算,逐项输出,可用于添加列特征,缺少时仍会输出NaN(缺失值)

可使用numpy的数学函数,会保留索引,

存在布尔类型

五、对象的缺失值

        5.1发现缺失值  .isnull()

v=[21,321,None,878]
k=["no1","no2","no3","no4"]
sr=pd.Series(v,k)
sr
#no1     21.0
#no2    321.0
#no3      NaN
#no4    878.0
#dtype: float64
sr.isnull()
#no1    False
#no2    False
#no3     True
#no4    False
#dtype: bool

 返回布尔型数组

缺失值返回为True

                1)~df.isnull()  效果相当于  .notnull()

        5.2剔除缺失值  .dropna()

若是二维对象,则需单独剔除含缺失值的行或列。

不输入参数,则默认剔除含缺失值的行

输入参数axis=1,则删除缺失值的列

                1)设置参数  how=”all“

此时只有该行全为NaN才会被剔除。

“all”处可以限定数字。

        5.3填充缺失值  .fillna()

 括号内传入填充物。

                1) method="ffill"

填充前一项的值

                2) method="bfill"

填充后一项的值

六、导入Excel文件

excel文件另存为csv文件 

        6.1导入对象  pd.read_csv()

此函数专门用于读取csv文件

所需传入的参数第一个文件路径,后续为可选参数

七、数据分析

        7.1聚合方法

输出df时,后续加上 .head() 方法,可以使其仅输出前五行

max()、min()等聚合方法都适用

        7.2描述方法  .describe()

输出一系列数字,包含中位点及25%,75%

        7.3数据透视  .pivot_table()

内含参数aggfunc,默认值为mean

                1)pd.cut()

传入原始数据与切分数据(手动分割)

                2)pd.qcut()

传入原始数据与数字,数字为需要分割为的部分数量(自动分割)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值