《python数据分析及其在水利工程中的应用》课件-26DataFrame数据筛选_第1页
《python数据分析及其在水利工程中的应用》课件-26DataFrame数据筛选_第2页
《python数据分析及其在水利工程中的应用》课件-26DataFrame数据筛选_第3页
《python数据分析及其在水利工程中的应用》课件-26DataFrame数据筛选_第4页
《python数据分析及其在水利工程中的应用》课件-26DataFrame数据筛选_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

条件过滤与⾼级选择DataFrame数据筛选DataFramedatafiltering升级任务:经纬天下-成为【理数官】UpgradeTask:JingweiTianxia-Becomea[LiShuGuan]⻓⽼的指引"你已掌握了DataFrame中选择⾏列的基础法⻔。

今⽇,我们将更进一步,学习如何根据特定'⽔情条件'筛选数据,并运⽤更⾼级的'神符'进⾏复杂选择。"—智水长老升级任务进度TheprogressoftheUpgradetask当前任务任务:

条件筛选-DataFrame数据筛选进行中>>>已完成任务任务:单脉梳理-PandasSeries构建沙盘-DataFrame创建与查看精准定位-DataFrame选择基础已完成任务:

读取奏报与修复遗漏-Pandas数据读取与缺失值处理后续任务待解锁完成本任务,成为【理数官】!本次任务:条件筛选-DataFrame数据筛选Thistask:Conditionalfiltering-DataFramedatafiltering任务⽬标掌握使⽤布尔索引进⾏条件过滤深⼊理解.loc[]在条件筛选和⾏列同时选择中的⾼级应⽤了解.iloc[]在特定场景下的⾼级选择技巧01第一节"法阵"布设:布尔索引与条件过滤"Normalarray"layout:BooleanIndexandConditionalfiltering单一'阵眼':基于单一条件的筛选Single'arrayeye':Screeningbasedonasinglecondition布尔索引的原理布尔索引是Pandas中⾮常强⼤的数据筛选⽅式。它通过创建一个布尔类型的Series(True/False)然后⽤这个Series来选择DataFrame中对应为True的⾏。单一'阵眼':基于单一条件的筛选Single'arrayeye':Screeningbasedonasingleconditionimport

pandas

as

pddata_dict=

{'⽔库名称':

[

'三峡⽔库

',

'丹江⼝⽔库

','⼩浪底⽔库

',

'葛洲坝⽔库

'],'总库容(亿⽴⽅⽶)':

[393,290.5,90.5,

15.8],'所在河流':

[

'⻓江',

'汉江',

'黄河

',

'⻓江

'],'建成年份

':

[2006,1973,

2001,

1988]}df_reservoirs=pd.DataFrame(data_dict)#条件:

筛选建成年份晚于2000年的⽔库condition_after_2000=df_reservoirs

[

'建成年份

']>

2000print("条件

(布尔Series):")print(condition_after_2000)#应⽤布尔索引reservoirs_after_2000=df_reservoirs

[condition_after_2000]print("\n建成年份晚于2000年的水库:")print(reservoirs_after_2000)示例代码02第二节⾼级"神符":.loc[]的进阶应⽤Advanced"DivineTalisman":Advancedapplicationof.loc[].loc[]与条件过滤:'按名施法,条件为辅'.loc[]andconditionalfiltering:'Castbyname,withconditionsassecondary'.loc[]与布尔条件.loc[]的第一个参数可以接收布尔Series,⽤于条件筛选⾏。其第⼆个参数可以指定需要选择的列。示例代码#筛选建成年份晚于2000年的⽔库,#并只显示

'⽔库名称

'和'总库容(亿⽴⽅⽶)'reservoirs_info_after_2000=df_reservoirs.loc

[df_reservoirs

[

'建成年份

']>

2000,[

'⽔库名称

',

'总库容(亿⽴⽅⽶)']]print("建成年份晚于2000年的⽔库(名称和库容):")print(reservoirs_info_after_2000)基本语法:df.loc[boolean_series,column_list].loc[]同时选择⾏列.loc[]simultaneouslyselectsrowsandcolumnsrow_indexer可以是·单个标签·标签列表.loc[]的参数:loc[row_indexer,column_indexer]column_indexer可以是·单个标签·标签列表·标签切⽚·布尔Series·标签切⽚.loc[]⾏列选择代码示例.loc[]columnselectioncodeexample#假设df_reservoirs的⾏索引已设置为

'⽔库名称

'df_reservoirs_indexed=df_reservoirs.set_index(

'⽔库名称

')print("带索引的⽔库

DataFrame:")print(df_reservoirs_indexed)#选择

'三峡⽔库

'

'总库容(亿⽴⽅⽶)'capacity_sanxia=df_reservoirs_indexed.loc

[

'三峡⽔库

',

'总库容(亿⽴⽅⽶)']print(f"三峡⽔库的总库容

:{capacity_sanxia}亿⽴⽅⽶

")#选择'丹江⼝⽔库

'和'⼩浪底⽔库

'的'所在河流

'和'建成年份

'selected_data=df_reservoirs_indexed.loc

[

[

'丹江⼝⽔库

',

'⼩浪底⽔库

'],

[

'所在河流

',

'建成年份

']]

print("丹江⼝和⼩浪底的河流与建成年份

:")print(selected_data)示例代码03第三节⾼级"神符":.iloc[]的选择技巧Selectiontipsforadvanced"DivineTalisman":.iloc[].iloc[]同时选择⾏列.iloc[]simultaneouslyselectsrowsandcolumnsrow_indexer和column_indexer都必须是·单个整数·

整数列表·

整数切⽚基本语法:iloc[row_indexer,column_indexer]与.loc[]不同,.iloc[]是基于整数位置的,不是基于标签的。.iloc[]同时选择⾏列.iloc[]simultaneouslyselectsrowsandcolumnsrow_indexer和column_indexer都可以是·单个整数·

整数列表·

整数切⽚.iloc[]⾏列选择代码示例.iloc[]columnselectioncodeexample#选择第1⾏

(位置0)

的所有列first_row_all_columns=df_reservoirs.iloc

[0]print("第—⾏所有数据

:")print(first_row_all_columns)#选择所有⾏的第2列(位置1,

I总库容(亿⽴⽅⽶)I)second_column_all_rows=df_reservoirs.iloc

[:,1]print("第⼆列所有数据

:")print(second_column_all_rows)#选择第1到2⾏

(位置0到1)的第1到3列

(位置0到2)subset_iloc=df_reservoirs.iloc

[0:2,0:3]#不包含结束位置print("特定⾏列

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论