• 数据挖掘---Pandas的学习


    Pandas介绍(panel + data + analysis)

    image

    为什么使用Pandas
            便捷的数据处理能力
            读取文件方便
            封装了Matplotlib、Numpy的画图和计算

    Pandas的核心数据结构(DataFrame+Panel+Series)

    3大核心结构:

                DataFrame
                Panel
                Series

    1、DataFrame

    DataFrame
        结构:既有行索引,又有列索引的二维数组
        属性:
            shape
            index
            columns
            values
            T
        方法:
            head()
            tail()
        3 DataFrame索引的设置
            1)修改行列索引值
            2)重设索引
            3)设置新索引

    简单demo:

    import numpy as np
    import pandas as pd
    
    def demo():
        data = np.random.normal(0, 1, (10, 5))
        print(data)
        # 添加行索引
        stock = [
            "股票{}".format(i) for i in range(10)
        ]
        pd.DataFrame(data, index=stock)
        # 添加列索引
        date = pd.date_range(start="20180101", periods=5, freq="B")
    
    
    if __name__ == '__main__':
        demo()

    image

    1、结构:

    image

    2、属性

         shape +  index  +  columns  + values  +      T

    data = np.random.normal(0, 1, (10, 5))

    image

    3、方法

        head()   : 默认返回数据的前5行,head(3),返回前3行

        tail() :默认返回数据的后5行,tail(3),返回后3行

    4、DataFrame索引的设置

           1)修改行列索引值: 只能整体修改,不能单独修改索引
           2)重设索引
           3)设置新索引

    image

    image

    image

    import numpy as np
    import pandas as pd
    
    def demo():
        data = np.random.normal(0, 1, (10, 5))
        print(data)
        # 添加行索引
        stock = [
            "股票{}".format(i) for i in range(10)
        ]
        pd.DataFrame(data, index=stock)
    
        # 1、添加列索引
        date = pd.date_range(start="20180101", periods=5, freq="B")
    
        # 修改行列索引值:整体修改,不能单独修改某一个
        # 【错误】 data.index[2] = "股票88"   --》 不能单独修改索引
        stock_ = ["股票_{}".format(i) for i in range(10)]
        data.index = stock_
    
        # 2、重设索引
        data.reset_index(drop=False)  # False: 不删除原索引, True删除原索引h, 默认False
    
        # 3、设置某列的新索引,创建新的dataframe
        df = pd.DataFrame({'month': [1, 4, 7, 10],
                           'year': [2012, 2014, 2013, 2014],
                           'sale': [55, 40, 84, 31]})
        # 以月份设置新的索引
        df.set_index("month", drop=True)
    
        # 设置多个索引,以年和月份(具有多索引的DataFrame,可用于三维数组)
        new_df = df.set_index(["year", "month"])
    
    if __name__ == '__main__':
        demo()
    

    image

    MultiIndex与Panel

    1、MultiIndex

    image

    import pandas as pd
    
    def demo():
        df = pd.DataFrame({'month': [1, 4, 7, 10],
                           'year': [2012, 2014, 2013, 2014],
                           'sale': [55, 40, 84, 31]})
        new_df = df.set_index(["year", "month"])
    
        print(new_df.index)  # 索引列表
        print(new_df.index.names)  # 索引名称
    
    if __name__ == '__main__':
        demo()

    2、Panel

    panel我们通常看做pandas的容器,没办法直接看3维数据,只能从某一个维度出发看另外2个二维的数据

    image

    image

    image

    Series

  • 相关阅读:
    JAVA基础-抽象类和接口
    JAVA基础-多态
    JAVA基础-继承机制
    C++(二十七) — 深拷贝、浅拷贝、复制构造函数举例
    C++(二十六) — 构造函数、析构函数、对象数组、复制构造函数
    C++(二十五) — 类的封装、实现、设计
    C++(二十四) — 指向字符的指针为什么可以用字符串来初始化,而不是字符地址?
    C++(二十三) — 内存泄漏及指针悬挂
    C++(二十二) — 指针变量、函数指针、void指针
    C++(二十一) — 引用概念及本质
  • 原文地址:https://www.cnblogs.com/ftl1012/p/10581020.html
Copyright © 2020-2023  润新知