没有合适的资源?快使用搜索试试~ 我知道了~
首页pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
资源详情
资源推荐
![](https://csdnimg.cn/release/download_crawler_static/12852926/bg1.jpg)
pandas数据选取:数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[]
主要介绍了pandas数据选取:df[] df.loc[] df.iloc[] df.ix[] df.at[] df.iat[],文中通过示例代码介绍的非常详细,对大
家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
1 引言引言
Pandas是作为Python数据分析著名的工具包,提供了多种数据选取的方法,方便实用。本文主要介绍Pandas的几种数据
选取的方法。
Pandas中,数据主要保存为Dataframe和Series是数据结构,这两种数据结构数据选取的方式基本一致,本文主要以
Dataframe为例进行介绍。
在Dataframe中选取数据大抵包括3中情况:
1)行(列)选取(单维度选取):df[]。这种情况一次只能选取行或者列,即一次选取中,只能为行或者列设置筛选条件
(只能为一个维度设置筛选条件)。
2)区域选取(多维选取):df.loc[],df.iloc[],df.ix[]。这种方式可以同时为多个维度设置筛选条件。
3)单元格选取(点选取):df.at[],df.iat[]。准确定位一个单元格。
接下来,我们以下面的数据为例,分别通过实例介绍这三种情况。
>>> import pandas as pd
>>> import numpy as np
>>> data = {'name': ['Joe', 'Mike', 'Jack', 'Rose', 'David', 'Marry', 'Wansi', 'Sidy', 'Jason', 'Even'],
'age': [25, 32, 18, np.nan, 15, 20, 41, np.nan, 37, 32],
'gender': [1, 0, 1, 1, 0, 1, 0, 0, 1, 0],
'isMarried': ['yes', 'yes', 'no', 'yes', 'no', 'no', 'no', 'yes', 'no', 'no']}
>>> labels = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j']
>>> df = pd.DataFrame(data, index=labels)
>>> df
name age gender isMarried
a Joe 25.0 1 yes
b Mike 32.0 0 yes
c Jack 18.0 1 no
d Rose NaN 1 yes
e David 15.0 0 no
f Marry 20.0 1 no
g Wansi 41.0 0 no
h Sidy NaN 0 yes
i Jason 37.0 1 no
j Even 32.0 0 no
2 行(列)选取:行(列)选取:df[]
行(列)选取是在单一维度上进行数据的选取,即以行为单位进行选取或者以列为单位进行选取。Dataframe对象的行有
索引(index),默认情况下是[0,1,2,……]的整数序列,也可以自定义添加另外的索引,例如上面的labels,(为区分默认索
引和自定义的索引,在本文中将默认索引称为整数索引,自定义索引称为标签索引)。Dataframe对象的每一列都有列名,可
以通过列名实现对列的选取。
1)选取行)选取行
选取行的方式包括三种:整数索引切片、标签索引切片和布尔数组。
a)整数索引切片:前闭后开
![](https://csdnimg.cn/release/download_crawler_static/12852926/bg2.jpg)
选取第一行:
>>> df[0:1]
name age gender isMarried
a Joe 25.0 1 yes
选取前两行:
>>> df[0:2]
name age gender isMarried
a Joe 25.0 1 yes
b Mike 32.0 0 yes
b)标签索引切片:前闭后闭
选取第一行:
>>> df[:'a']
name age gender isMarried
a Joe 25.0 1 yes
选取前两行:
>>> df['a':'b']
name age gender isMarried
a Joe 25.0 1 yes
b Mike 32.0 0 yes
注意:整数索引切片是前闭后开,标签索引切片是前闭后闭,这点尤其要注意。
c)布尔数组
选取前三行
>>> df[[True,True,True,False,False,False,False,False,False,False]]
name age gender isMarried
a Joe 25.0 1 yes
b Mike 32.0 0 yes
c Jack 18.0 1 no
选取所有age大于30的行
>>> df[[each>30 for each in df['age']]]
name age gender isMarried
b Mike 32.0 0 yes
g Wansi 41.0 0 no
i Jason 37.0 1 no
j Even 32.0 0 no
通过布尔数组的方式,又可以衍生出下面的选取方式:
选取所有age大于30的行
>>> df[df['age']>30]
name age gender isMarried
![](https://csdnimg.cn/release/download_crawler_static/12852926/bg3.jpg)
b Mike 32.0 0 yes
g Wansi 41.0 0 no
i Jason 37.0 1 no
j Even 32.0 0 no
选取出所有age大于30,且isMarried为no的行
>>> df[(df['age']>30) & (df['isMarried']=='no')]
name age gender isMarried
g Wansi 41.0 0 no
i Jason 37.0 1 no
j Even 32.0 0 no
选取出所有age为20或32的行
>>> df[(df['age']==20) | (df['age']==32)]
name age gender isMarried
b Mike 32.0 0 yes
f Marry 20.0 1 no
j Even 32.0 0 no
注意:像上面这种通过多个布尔条件判断的情况,多个条件最好(一定)用括号括起来,否则非常容易出错。
2)列选取
列选取方式也有三种:标签索引、标签列表、Callable对象
a)标签索引:选取单个列
选取name列所有数据
>>> df['name']
a Joe
b Mike
c Jack
d Rose
e David
f Marry
g Wansi
h Sidy
i Jason
j Even
Name: name, dtype: object
b)标签列表:选取多个列
选取name和age两列数据
>>> df[['name','age']]
name age
a Joe 25.0
b Mike 32.0
c Jack 18.0
剩余10页未读,继续阅读
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://profile-avatar.csdnimg.cn/default.jpg!1)
weixin_38691742
- 粉丝: 4
- 资源: 903
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助
![](https://csdnimg.cn/release/wenkucmsfe/public/img/voice.245cc511.png)
会员权益专享
最新资源
- 工业AI视觉检测解决方案.pptx
- 智慧医院信息化建设规划及愿景解决方案.pptx
- 智慧医院信息化+智能化系统建设方案.pptx
- 人工智能AI技术方案PPT.pptx
- 基于互联网智慧水务信息化整体解决方案.pptx
- AI智能智慧校园建设方案.pptx
- 数字化是园区运营走向成功的秘诀.docx
- 美团多场景建模的探索与实践.docx
- 携程火车票异常检测和根因定位实践.docx
- RDMA 优先级 流量控制
- linux kernel driver development
- 换电重卡专家访谈.pdf
- 2023中国电动汽车百人会-国际论坛纪要.pdf
- 雷诺规划与技术路线.pdf
- 计算机行业:从上海车展看汽车智能化新成果.pdf
- 上海车展之技术篇:插混全新品牌序列升级,智能化配置及场景丰富.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035711.png)
![](https://img-home.csdnimg.cn/images/20220527035111.png)
安全验证
文档复制为VIP权益,开通VIP直接复制
![](https://csdnimg.cn/release/wenkucmsfe/public/img/green-success.6a4acb44.png)