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化的.
    
  • 相关阅读:
    街边的泥人张
    没事试试50mm1.4
    WWOOF介绍一下,但貌似我们利用不了
    护照和签证
    071205还是晴photo
    忘年旅行
    12月6日大雪
    12月5日
    周六
    071204 晴
  • 原文地址:https://www.cnblogs.com/Franciszw/p/14436941.html
Copyright © 2011-2022 走看看