• pandas的学习2-选择数据


     import pandas as pd
    import  numpy as np
    
    dates = pd.date_range('20130101', periods=6)
    df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D'])
    
    """
                 A   B   C   D
    2013-01-01   0   1   2   3
    2013-01-02   4   5   6   7
    2013-01-03   8   9  10  11
    2013-01-04  12  13  14  15
    2013-01-05  16  17  18  19
    2013-01-06  20  21  22  23
    """
    
    # todo 简单的筛选
    
    # 如果我们想选取DataFrame中的数据,下面描述了两种途径, 他们都能达到同一个目的:
    
    print(df['A'])
    print(df.A)#
    #和python字典的选取有一点点雷同
    
    """
    2013-01-01     0
    2013-01-02     4
    2013-01-03     8
    2013-01-04    12
    2013-01-05    16
    2013-01-06    20
    Freq: D, Name: A, dtype: int64
    """
    
    # 让选择跨越多行或多列:  还可以进行切片的操作
    
    print(df[0:3])#如果选择df[3:3]将会是一个空对象
    
    """
                A  B   C   D
    2013-01-01  0  1   2   3
    2013-01-02  4  5   6   7
    2013-01-03  8  9  10  11
    """
    
    print(df['20130102':'20130104'])#这个返回的是两个标签之间的数据
    
    """
    A   B   C   D
    2013-01-02   4   5   6   7
    2013-01-03   8   9  10  11
    2013-01-04  12  13  14  15
    """
    
    
    # todo根据标签 loc
    '''
    同样我们可以使用标签来选择数据 loc, 本例子主要通过标签名字选择某一行数据,
     或者通过选择某行或者所有行(:代表所有行)然后选其中某一列或几列数据。:
    '''
    print(df.loc['20130102'])#loc 相当于locate嘛 定位该标签(该行)的所有数据
    #返回的是列号,还有数据  标签名称 数据类型
    """
    A    4
    B    5
    C    6
    D    7
    Name: 2013-01-02 00:00:00, dtype: int64
    """
    
    print(df.loc[:,['A','B']]) #  :表示的选择所有行,['A','B']表示只选择AB列
    """
                 A   B
    2013-01-01   0   1
    2013-01-02   4   5
    2013-01-03   8   9
    2013-01-04  12  13
    2013-01-05  16  17
    2013-01-06  20  21
    """
    
    print(df.loc['20130102',['A','B']])
    """
    A    4
    B    5
    Name: 2013-01-02 00:00:00, dtype: int64
    """
    
    #todo loc(locate)定位也可以进行切片处理
    
    # todo 根据序列 iloc
    
    # 另外我们可以采用位置进行选择 iloc, 在这里我们可以通过位置选择在不同情况下所需要的数据例如选某一个,连续选或者跨行选等操作。
    #刚才那个loc是根据标签的名字,行名或者列名,这里是根据位置
    
    print(df.iloc[3,1])
    # 13
    
    print(df.iloc[3:5,1:3])
    """
                 B   C
    2013-01-04  13  14
    2013-01-05  17  18
    """
    
    print(df.iloc[[1,3,5],1:3])
    """
                 B   C
    2013-01-02   5   6
    2013-01-04  13  14
    2013-01-06  21  22
    
    """
    
    # todo 根据混合的这两种 ix
    
    # 当然我们可以采用混合选择 ix, 其中选择’A’和’C’的两列,并选择前三行的数据。
    
    print(df.ix[:3,['A','C']])  #选择前三行a,c列的所有数据
    """
                A   C
    2013-01-01  0   2
    2013-01-02  4   6
    2013-01-03  8  10
    """
    
    
    # todo 通过判断的筛选
    
    # 最后我们可以采用判断指令 (Boolean indexing) 进行选择. 我们可以约束某项条件然后选择出当前所有数据.
    
    print(df[df.A>8])
    """
                 A   B   C   D
    2013-01-04  12  13  14  15
    2013-01-05  16  17  18  19
    2013-01-06  20  21  22  23
    """
    

     dates = pd.date_range('20130101', periods=6)
    df = pd.DataFrame(np.arange(24).reshape((6,4)),index=dates, columns=['A','B','C','D']) 创建了一个dataframe

    datefram.A == dateframe['A']   

    df['20130102':'20130104']选择的是两个标签之间的元素    切片操作

    loc(locate)按照标签名称进行定位

    iloc按照 元素的位置进行定位

    ix 混合选择

    df.ix[:3,['a','c']] 选择前三行a,c列的数据

    df[df.A>8]     boolean indexing 进行选择,约束某项条件然后选择出当前的数据

    df.loc['20130102']
  • 相关阅读:
    分布式服务框架 Zookeeper — 管理分布式环境中的数据
    分布式消息队列(二)
    分布式消息队列(一)
    数据库事务的四大特性以及事务的隔离级别
    php--yii2.0的安装
    php--字符串函数分类总结
    一张表有三个字段:id(城市id) Cityname(城市名) Privence(所属省份)如果要统计每个省份有多少城市请用SQL实现。
    TP自带的缓存机制
    php——n维数组的遍历——递归
    php--分享插件
  • 原文地址:https://www.cnblogs.com/simon-idea/p/9571519.html
Copyright © 2020-2023  润新知