zoukankan      html  css  js  c++  java
  • 数据可视化基础专题(五):Pandas基础(四) 生成对象

    引言

    先介绍下 Pandas 的数据结构,毕竟数据结构是万物的基础。

    Pandas 有两种主要的数据结构: Series 和 DataFrame 

    模块导入

    首先我们在代码中引入 Pandas 和 Numpy ,如下:

    import numpy as np
    import pandas as pd

    Series

    Series 可以简单的理解为一维数组,可以存储整数、浮点数、字符串、Python 对象等类型的数据。

    这个概念有点像 Java 中的集合。

    如果无法理解的话,那么可以看下面这个图(Excel 简单画画,灵魂画手登场):

    这里的 data 可以是上面提到的那些数据类型,并不仅限于图中的整数。

    如果 index 的值未指定,那么将会自动的创建数值类型的索引,从 0 开始,例如:0 , 1 , 2, 3 ... len(data) - 1 。

    创建一个 Series ,这里我们可以使用 pd.Series 函数来创建,如下:

    s = pd.Series(np.random.rand(5), index=['a', 'b', 'c', 'd', 'e'])
    print(s)
    print(s.index)
    
    s1 = pd.Series(np.random.randn(5))
    print(s1)

    DataFrame

    DataFrame 是由多种类型的列构成的二维标签数据结构。

    简单理解是类似于 Excel 、 SQL 表的结构。

    DataFrame 是最常用的 Pandas 对象,与 Series 一样,DataFrame 支持多种类型的输入数据:

    • 一维 ndarray、列表、字典、Series 字典
    • 二维 numpy.ndarray
    • 结构多维数组或记录多维数组
    • Series
    • DataFrame

    用含日期时间索引与标签的 NumPy 数组生成 DataFrame

    In [5]: dates = pd.date_range('20130101', periods=6)
    
    In [6]: dates
    Out[6]: 
    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 [7]: df = pd.DataFrame(np.random.randn(6, 4), index=dates, columns=list('ABCD'))
    
    In [8]: df
    Out[8]: 
                       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.087401
    2013-01-06 -0.673690  0.113648 -1.478427  0.524988

    用 Series 字典对象生成 DataFrame:

    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

     

  • 相关阅读:
    2019-2020-2 20175226王鹏雲《网络对抗技术》Exp4 恶意代码分析
    2019-2020-2 20175226王鹏雲《网络对抗技术》Exp3 免杀原理与实践
    2019-2020-2 20175226 王鹏雲 网络对抗技术 Exp2 后门原理与实践
    2019-2020-2 20175226王鹏雲 《网络对抗技术》 Exp1 PC平台逆向破解
    2019-2020-1 20175226 《信息安全系统设计基础》ucosii
    系统综合实践——第7次实践作业 01组
    系统综合实践——第6次实践作业 01组
    系统综合实践——第5次实践作业
    系统综合实践——第4次实践作业
    系统综合实践——第3次实践作业
  • 原文地址:https://www.cnblogs.com/qiu-hua/p/12668094.html
Copyright © 2011-2022 走看看