pandas+dataframe实现行列选择与切片操作

这次给大家带来pandas+dataframe实现行列选择切片操作,pandas+dataframe实现行列选择与切片操作的注意事项有哪些,下面就是实战案例,一起来看一下。

SQL中的select是根据列的名称来选取;Pandas则更为灵活,不但可根据列名称选取,还可以根据列所在的position(数字,在第几行第几列,注意pandas行列的position是从0开始)选取。相关函数如下:

1)loc,基于列label,可选取特定行(根据行index);

2)iloc,基于行/列的position;

3)at,根据指定行index及列label,快速定位DataFrame的元素;

4)iat,与at类似,不同的是根据position来定位的;

5)ix,为loc与iloc的混合体,既支持label也支持position;

实例

import pandas as pdimport numpy as npdf = pd.DataFrame({'total_bill': [16.99, 10.34, 23.68, 23.68, 24.59],          'tip': [1.01, 1.66, 3.50, 3.31, 3.61],          'sex': ['Female', 'Male', 'Male', 'Male', 'Female']})# data type of columnsprint df.dtypes# indexesprint df.index# return pandas.Indexprint df.columns# each row, return array[array]print df.valuesprint df

登录后复制

sex      objecttip      float64total_bill  float64dtype: objectRangeIndex(start=0, stop=5, step=1)Index([u'sex', u'tip', u'total_bill'], dtype='object')[['Female' 1.01 16.99] ['Male' 1.66 10.34] ['Male' 3.5 23.68] ['Male' 3.31 23.68] ['Female' 3.61 24.59]]   sex  tip total_bill0 Female 1.01    16.991  Male 1.66    10.342  Male 3.50    23.683  Male 3.31    23.684 Female 3.61    24.59

登录后复制

print df.loc[1:3, ['total_bill', 'tip']]print df.loc[1:3, 'tip': 'total_bill']print df.iloc[1:3, [1, 2]]print df.iloc[1:3, 1: 3]

登录后复制

  total_bill  tip1    10.34 1.662    23.68 3.503    23.68 3.31  tip total_bill1 1.66    10.342 3.50    23.683 3.31    23.68  tip total_bill1 1.66    10.342 3.50    23.68  tip total_bill1 1.66    10.342 3.50    23.68

登录后复制

错误的表示:

print df.loc[1:3, [2, 3]]#.loc仅支持列名操作

登录后复制

KeyError: 'None of [[2, 3]] are in the [columns]'

登录后复制

print df.loc[[2, 3]]#.loc可以不加列名,则是行选择

登录后复制

  sex  tip total_bill2 Male 3.50    23.683 Male 3.31    23.68

登录后复制

print df.iloc[1:3]#.iloc可以不加第几列,则是行选择

登录后复制

sex  tip total_bill1 Male 1.66    10.342 Male 3.50    23.68

登录后复制

print df.iloc[1:3, 'tip': 'total_bill']

登录后复制

TypeError: cannot do slice indexing on  with these indexers [tip] of 

登录后复制

print df.at[3, 'tip']print df.iat[3, 1]print df.ix[1:3, [1, 2]]print df.ix[1:3, ['total_bill', 'tip']]

登录后复制

3.313.31  tip total_bill1 1.66    10.342 3.50    23.683 3.31    23.68  total_bill  tip1    10.34 1.662    23.68 3.503    23.68 3.31

登录后复制

print df.ix[[1, 2]]#行选择

登录后复制

  sex  tip total_bill1 Male 1.66    10.342 Male 3.50    23.68

登录后复制

print df[1: 3]print df[['total_bill', 'tip']]# print df[1:2, ['total_bill', 'tip']] # TypeError: unhashable type

登录后复制

sex  tip total_bill1 Male 1.66    10.342 Male 3.50    23.68  total_bill  tip0    16.99 1.011    10.34 1.662    23.68 3.503    23.68 3.314    24.59 3.61

登录后复制

print df[1:3,1:2]

登录后复制

TypeError: unhashable type

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

pandas中的Dataframe查询有哪些方法

selenium+cookie跳过验证码登录实现步奏详解

以上就是pandas+dataframe实现行列选择与切片操作的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2264195.html

(0)
上一篇 2025年2月27日 08:03:04
下一篇 2025年2月18日 04:47:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

发表回复

登录后才能评论