zoukankan      html  css  js  c++  java
  • 非常全面的Pandas入门教程

    原始文章

    pandas是基于NumPy的一种数据分析工具,在机器学习任务中,我们首先需要对数据进行清洗和编辑等工作,pandas库大大简化了我们的工作量,熟练并掌握pandas常规用法是正确构建机器学习模型的第一步。

    目录

    1. 如何安装pandas
    2. 如何导入pandas库和查询相应的版本信息
    3. pandas数据类型
    4. series教程
    5. dataframe教程
    6. 小结

    1. 如何安装Pandas

    最常用的方法是通过Anaconda安装,在终端或命令符输入如下命令安装:

    conda install pandas

    若未安装Anaconda,使用Python自带的包管理工具pip来安装:

    pip install pandas

    2. 如何导入pandas库和查询相应的版本信息

    import numpy as np   # pandas和numpy常常结合在一起使用,导入numpy库
    import pandas as pd  # 导入pandas库
    
    print(pd.__version__) # 打印pandas版本信息
    
    #> 0.23.4

    3. pandas数据类型

    pandas包含两种数据类型:series和dataframe。
    series是一种一维数据结构,每一个元素都带有一个索引,与一维数组的含义相似,其中索引可以为数字或字符串。series结构名称:
    |索引列|数据列

     dataframe是一种二维数据结构,数据以表格形式(与excel类似)存储,有对应的行和列。dataframe结构名称:

    4. series教程

    1. 如何从列表,数组,字典构建series
    mylist = list('abcedfghijklmnopqrstuvwxyz')   # 列表
    myarr = np.arange(26)                          # 数组
    mydict = dict(zip(mylist, myarr))             # 字典
    
    # 构建方法
        ser1 = pd.Series(mylist)
        ser2 = pd.Series(myarr)
        ser3 = pd.Series(mydict)
        print(ser3.head())                 # 打印前5个数据
        
        #>  a    0
            b    1
            c    2
            d    4
            e    3
            dtype:int64
    1. 如何使series的索引列转化为dataframe的列
    mylist = list('abcedfghijklmnopqrstuvwxyz')
    myarr = np.arange(26)
    mydict = dict(zip(mylist, myarr))
    ser = pd.Series(mydict)
    
    # series转换为dataframe
    df = ser.to_frame()
    # 索引列转换为dataframe的列
    
    df.reset_index(inplace=True)
    print(df.head())
    
    #>      index  0
        0     a  0
        1     b  1
        2     c  2
        3     e  3
        4     d  4
    1. 如何结合多个series组成dataframe
    # 构建series1
    ser1 = pd.Series(list('abcedfghijklmnopqrstuvwxyz')) 
    # 构建series2
    ser2 = pd.Series(np.arange(26))
    
    # 方法1,axis=1表示列拼接,0表示行拼接
    df = pd.concat([ser1, ser2], axis=1)
    
    # 与方法1相比,方法2设置了列名
    
        df = pd.DataFrame({'col1': ser1, 'col2': ser2})
        print(df.head())
        
        #>      col1  col2
            0    a     0
            1    b     1
            2    c     2
            3    e     3
            4    d     4
    1. 如何命名列索引的名称

    ser = pd.Series(list('abcedfghijklmnopqrstuvwxyz'))
    
    # 命名索引列名称
    ser.name = 'alphabets'
    # 显示前5行数据
    
    ser.head()
    
    #>    0    a
        1    b
        2    c
        3    e
        4    d
        Name: alphabets, dtype: object
    1. 如何获得series对象A中不包含series对象B的元素
    ser1 = pd.Series([1, 2, 3, 4, 5])
    ser2 = pd.Series([4, 5, 6, 7, 8])
    
    # 返回ser1不包含ser2的布尔型series
    ser3=~ser1.isin(ser2)
    # 获取ser不包含ser2的元素
    
    ser1[ser3]
    
    #>    0    1
        1    2
        2    3
        dtype: int64
    1. 如何获得seriesA和seriesB不相同的项
    ser1 = pd.Series([1, 2, 3, 4, 5])
    ser2 = pd.Series([4, 5, 6, 7, 8])
    
    # 求ser1和ser2的并集
    ser_u = pd.Series(np.union1d(ser1, ser2))
    # 求ser1和ser2的交集
    ser_i = pd.Series(np.intersect1d(ser1, ser2))
    # ser_i在ser_u的补集就是ser1和ser2不相同的项
    
    ser_u[~ser_u.isin(ser_i)]
    
    #>    0    1
        1    2
        2    3
        5    6
        6    7
        7    8
        dtype: int64
  • 相关阅读:
    C++中类模板的概念和意义
    欢迎访问新博客aiyoupass.com
    P2327
    P2885
    P1968
    Link-Cut-Tree
    树的重心
    点分治笔记
    SPOJ 375
    树链剖分
  • 原文地址:https://www.cnblogs.com/karkash/p/13607986.html
Copyright © 2011-2022 走看看