zoukankan      html  css  js  c++  java
  • 3.pandas的简单查询

    知道了基本的pandas的数据结构,就可以进行查询相应的数据了

    DataFrame可以看成是一个个的Series组成的一个二维结构,既然如此,就会有从DataFrame里查询Series的方法

    从DataFrame中查询Series

    这么说会一头雾水,通俗一点讲就是从表格里查询一行或者一列的数据

    由于pandas和字典有些类似,所以同样,也可以用字典的方式进行获取

    列的查询

    d = {
        'state':['s1','s2','s3'],
        'year':['2020','2019','2018'],
        'inp':['a','b','c']
    }
    s1 = pd.DataFrame(d)
    
    print(s1)
    print('***********')
    print(s1['year'])
    
      state  year inp
    0    s1  2020   a
    1    s2  2019   b
    2    s3  2018   c
    ***********
    0    2020
    1    2019
    2    2018
    Name: year, dtype: object
    
    

    这样我们就拿到了year这一列的所有数据

    当然也可以查询多列,只不过返回的就是DataFrame,因为已经变成二维的数据了

    d = {
        'state': ['s1', 's2', 's3'],
        'year': ['2020', '2019', '2018'],
        'inp': ['a', 'b', 'c']
    }
    s1 = pd.DataFrame(d)
    
    print(s1)
    print('***********')
    print(s1[['year', 'state']])
    
    
      state  year inp
    0    s1  2020   a
    1    s2  2019   b
    2    s3  2018   c
    ***********
       year state
    0  2020    s1
    1  2019    s2
    2  2018    s3
    
    

    将想要查询的列,以列表的形式传进去,就能够获取多列的数据了

    行的查询

    行查询就是查询哪一行,输入行数,返回该行的数据

    d = {
        'state': ['s1', 's2', 's3'],
        'year': ['2020', '2019', '2018'],
        'inp': ['a', 'b', 'c']
    }
    s1 = pd.DataFrame(d)
    
    print(s1)
    print('***********')
    print(s1.loc[1])
    
      state  year inp
    0    s1  2020   a
    1    s2  2019   b
    2    s3  2018   c
    ***********
    state      s2
    year     2019
    inp         b
    Name: 1, dtype: object
    
    

    查询多行的数据,就类似于列表的切片,但是和python的切片不同的是,切片是首尾都闭合的状态

    d = {
        'state': ['s1', 's2', 's3'],
        'year': ['2020', '2019', '2018'],
        'inp': ['a', 'b', 'c']
    }
    s1 = pd.DataFrame(d)
    
    print(s1)
    print('***********')
    print(s1.loc[1:3])
    
      state  year inp
    0    s1  2020   a
    1    s2  2019   b
    2    s3  2018   c
    ***********
      state  year inp
    1    s2  2019   b
    2    s3  2018   c
    

    可能会发现,没有第三行,为什么可以执行,其实,末尾的你写2000也行,对于查询而言,可以溢出,不用一定在

    而且根据上面说到的原理,查询多列拿到的也应该是DataFrame的类型

  • 相关阅读:
    【题解】警位安排( 树形 DP)
    【题解】任务分配
    Leo 搭积木
    受牛仰慕的牛
    zy 送画
    [NOIP2010] 乌龟棋
    [WikiOi 1214] 线段覆盖
    【拓扑习题】课程安排问题
    [WikiOI "天梯"1281] Xn数列
    [百度之星2014资格赛] Disk Schedule 报告
  • 原文地址:https://www.cnblogs.com/jevious/p/13370199.html
Copyright © 2011-2022 走看看