zoukankan      html  css  js  c++  java
  • dateframe取子集总结

    1.获取列

    df['country']  
    df[['country','year']]
    #不能通过df[0]获取第一列,如果想通过列的索引位置获取列需要用到loc
    
    #获取所有列名
    df.columns    #得到一个Index类型
    list(df.columns)#将得到的Index类型转成列表
    

    2.获取行

    df.loc[0]
    df.loc['第一行名']
    
    df.loc[[0,2,4]]
    df.loc[['第1行名','第3行名','第5行名']]
    
    df.loc[[::2]] #通过切片语法连续选择
    
    
    #用法和loc类似iloc只能是纯索引,loc可以是行号或行名,loc不是索引取值所以不能loc[-1]
    df.iloc[0]
    df.iloc[-1]
    

    3.混合取值

    # loc和iloc的高级用法loc[,] 如果中间用一个逗号分隔之后,loc就不不积极只能去行了,而是取区域,逗号前面是取行,逗号后面是取列.
    #由于在df中想取多个值需要传入一个列表,和原来的[]搭配起来看起来就很怪,如果恰巧碰上取一片区域看起来就更奇怪.
    
    df.loc[[0,2,4],['第1列名','第2列名','第3列名']]
    
    #搭配切片语法可以使用法看起来易懂一些,如通过loc和iloc获取第一列
    df.loc[:,'第1列名']
    df.iloc[:,0]
    #错误用法 df.loc[:,0]
    
    

    4.使用布尔值获取数据子集,这是条件筛选的基本实现原理

    df[[True,False,True,False]]
    df[df['age']>df['age'].mean()]
    #比较时pandas内部使用广播实现,并返回一组布尔值
    

    5.取值结果总结

    dateframe取一列或一行得到series
    df或series取index得到index类型数据
    df或series取value得到array类型数据
    df和series取值具体到单个值时得到具体值,如果一个df或一个series只有一个值,通过取一列,一行,value都不能得到那个具体值,使用df.iloc[0,0]可以去到值.
    在df或series中取值时注意数据格式,int64和float64是不能被json化的.
    
  • 相关阅读:
    对象的创建
    Java运行时数据区域
    Java内存模型
    LinkedList小练习及相关算法
    面试题之矩阵与转置矩阵相乘
    快速排序
    垃圾收集器
    java垃圾收集相关问题
    Win7下安装Centos7双系统出错:No valid bootloader target device found.
    Scanner类的方法
  • 原文地址:https://www.cnblogs.com/Franciszw/p/14436941.html
Copyright © 2011-2022 走看看