码迷,mamicode.com
首页 > 其他好文 > 详细

dateframe取子集总结

时间:2021-02-24 13:04:07      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:list   用法   try   获取数据   int   筛选   lang   array   格式   

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化的.

dateframe取子集总结

标签:list   用法   try   获取数据   int   筛选   lang   array   格式   

原文地址:https://www.cnblogs.com/Franciszw/p/14436941.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!