• Panda的学习之路(2)——pandas选择数据


    首先定义panda

    dates=pd.date_range('20130101',periods=6)
    # print(dates)
    df=pd.DataFrame(np.arange(24).reshape(6,4),index=dates,columns=['a','b','c','d'])
    print(df)
                 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

    一、选择特定的某一列

    # 选择某一列 选列比较简单
    print("选择具体的某一列")
    print(df['a'])
    #print(df.a)#这两种表达方式一致

    结果:

    选择具体的某一列
    2013-01-01     0
    2013-01-02     4
    2013-01-03     8
    2013-01-04    12
    2013-01-05    16
    2013-01-06    20

    二、选择特定的几行

    2.1通过仿照array的形式来选择

    print("选择特定的几行 0~1")
    print(df[0:1])
    print("选择20130102 到 20130104 行")
    print(df['20130102':'20130104'])

    结果:

    选择特定的几行 0~1
                a  b  c  d
    2013-01-01  0  1  2  3
    选择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

    2.2按照标签来选择(其实应该说是按照index来选择) 不管是行还是列 都必须是lable

    # 按标签来选择
    print("按照特定的标签进行")
    print(df.loc['20130102'])#loc是根据index来选择对应的行 也就是a行还是b行
    # 把ab的数据全部弄出来
    print("特定列给选出来")
    print(df.loc[:,['a','b']])
    print("把某一行的特定列给选出来")
    print(df.loc['20130102',['a','b']])

    结果:

    按照特定的标签进行筛选
    a    4
    b    5
    c    6
    d    7
    Name: 2013-01-02 00:00:00, dtype: int32
    特定列给选出来
                 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
    把某一行的特定列给选出来
    a    4
    b    5
    Name: 2013-01-02 00:00:00, dtype: int32

    2.3按第几行(第几列)来进行选择     不管行列都是数字

    # 按第几行来选择
    print(df.iloc[3])#第三行的数据 iloc是根据数字 也就是第几行来决定索引
    print(df.iloc[3:5,1:3])#三到5行 1:3 列

    结果:

    a    12
    b    13
    c    14
    d    15
    Name: 2013-01-04 00:00:00, dtype: int32
                 b   c
    2013-01-04  13  14
    2013-01-05  17  18

    2.4把lable和数字一起结合起来    就是又可以用数字 又可以用lable

    # 把lable和第几位一起来筛选
    print(df.ix[0:3,['a','c']])
    print(df.ix['20130101':'20130105',['a','c']])

    结果:

                a   c
    2013-01-01  0   2
    2013-01-02  4   6
    2013-01-03  8  10
                 a   c
    2013-01-01   0   2
    2013-01-02   4   6
    2013-01-03   8  10
    2013-01-04  12  14
    2013-01-05  16  18

    三、是或者否的相关筛选

    # 是或者否的筛选  只对比a 然后把其它的给显示出来
    # print(df)
    # a这一列中大于8的  然后把其它的bcd也会显示出来
    print(df[df.a>6])

    结果

                 a   b   c   d
    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
  • 相关阅读:
    报错Required String parameter 'customerInfo' is not present的原因及处理办法
    Mybatis 中$与#的区别
    ON DUPLICATE KEY UPDATE单个增加更新及批量增加更新的sql
    Git使用
    前后端分离
    对excel文件的读取
    POI导入和导出Excel总结
    git权限
    @RequestParam与@PathVariable
    lombok学习
  • 原文地址:https://www.cnblogs.com/William-xh/p/9557391.html
Copyright © 2020-2023  润新知