• 数据分析学习笔记2-----pandas


    要使用pandas,你首先就得熟悉它的两个主要数据结构:Series和DataFrame。

    1.Series

    Series是一种类似于一维数组的对象,它由一组数据(各种NumPy数据类型)以及一组与之相关的数据标签(即索引)组成

    In [11]: obj = pd.Series([4, 7, -5, 3])
    
    In [12]: obj
    Out[12]: 
    0    4
    1    7
    2   -5
    3    3
    dtype: int64
    In [15]: obj2 = pd.Series([4, 7, -5, 3], index=['d', 'b', 'a', 'c'])
    
    In [16]: obj2
    Out[16]: 
    d    4
    b    7
    a   -5
    c    3
    dtype: int64
    
    In [17]: obj2.index
    Out[17]: Index(['d', 'b', 'a', 'c'], dtype='object')

    2.DataFrame

    DataFrame是一个表格型的数据结构,它含有一组有序的列,每列可以是不同的值类型(数值、字符串、布尔值等)。DataFrame既有行索引也有列索引,它可以被看做由Series组成的字典(共用同一个索引)。DataFrame中的数据是以一个或多个二维块存放的(而不是列表、字典或别的一维数据结构)。

    data = {'state': ['Ohio', 'Ohio', 'Ohio', 'Nevada', 'Nevada', 'Nevada'],
            'year': [2000, 2001, 2002, 2001, 2002, 2003],
            'pop': [1.5, 1.7, 3.6, 2.4, 2.9, 3.2]}
    frame = pd.DataFrame(data)
    
    In [45]: frame
    Out[45]: 
       pop   state  year
    0  1.5    Ohio  2000
    1  1.7    Ohio  2001
    2  3.6    Ohio  2002
    3  2.4  Nevada  2001
    4  2.9  Nevada  2002
    5  3.2  Nevada  2003

    如果指定了列序列,则DataFrame的列就会按照指定顺序进行排列.

    In [47]: pd.DataFrame(data, columns=['year', 'state', 'pop'])
    Out[47]: 
       year   state  pop
    0  2000    Ohio  1.5
    1  2001    Ohio  1.7
    2  2002    Ohio  3.6
    3  2001  Nevada  2.4
    4  2002  Nevada  2.9
    5  2003  Nevada  3.2

    如果嵌套字典传给DataFrame,pandas就会被解释为:外层字典的键作为列,内层键则作为行索引

    In [66]: frame3 = pd.DataFrame(pop)
    
    In [67]: frame3
    Out[67]: 
          Nevada  Ohio
    2000     NaN   1.5
    2001     2.4   1.7
    2002     2.9   3.6

    索引对象

    pandas的索引对象负责管理轴标签和其他元数据(比如轴名称等)。构建Series或DataFrame时,所用到的任何数组或其他序列的标签都会被转换成一个Index。

    In [76]: obj = pd.Series(range(3), index=['a', 'b', 'c'])
    
    In [77]: index = obj.index
    
    In [78]: index
    Out[78]: Index(['a', 'b', 'c'], dtype='object')
    
    In [79]: index[1:]
    Out[79]: Index(['b', 'c'], dtype='object')
  • 相关阅读:
    54. 八皇后问题[eight queens puzzle]
    53. 特殊的O(n)时间排序[sort ages with hashtable]
    52. 不用+、-、×、÷做加法[add two numbers without arithmetic]
    C++基础知识面试精选100题系列(11-20题)[C++ basics]
    C++基础知识面试精选100题系列(1-10题)[C++ basics]
    洛谷 P1479 宿舍里的故事之五子棋
    洛谷 P2084 进制转换
    codevs 1700 施工方案第二季
    POJ 3278 Catch That Cow(求助大佬)
    POJ 2251 Dungeon Master
  • 原文地址:https://www.cnblogs.com/helloluo/p/9689640.html
Copyright © 2020-2023  润新知