《python数据分析及其在水利工程中的应用》课件-27Pandas数据读取与缺失值处理_第1页
《python数据分析及其在水利工程中的应用》课件-27Pandas数据读取与缺失值处理_第2页
《python数据分析及其在水利工程中的应用》课件-27Pandas数据读取与缺失值处理_第3页
《python数据分析及其在水利工程中的应用》课件-27Pandas数据读取与缺失值处理_第4页
《python数据分析及其在水利工程中的应用》课件-27Pandas数据读取与缺失值处理_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

读取奏报与修复遗漏Pandas数据读取与缺失值处理Pandasdatareadingandhandlingofmissingvalues经纬天下-成为【理数官】JingweiTianxia-Becomea'LiShuGuan'⻓⽼的指引"今⽇,我们将学习如何从外部"卷宗"(

⽂件)中读取'⽔⽂奏报',处理其中常见的"遗漏与残缺"(缺失值)。"—智水长老升级任务进度TheprogressoftheUpgradetask已完成课程任务:单脉梳理-PandasSeries任务:构建沙盘-DataFrame创建与查看任务:精准定位-DataFrame选择基础任务:条件筛选-DataFrame数据筛选已完成任务:读取奏报与修复遗漏-Pandas数据读取与缺失值处理当前课程进行中>>>完成本任务,成为【理数官】!本次任务:读取奏报与修复遗漏Thistask:Readthereportandfixanyomissions任务⽬标学会使⽤Pandas读取常见的外部数据⽂件掌握检测DataFrame中缺失值(NaN)的⽅法学习处理缺失值的常⽤策略01第一节开卷取报:Pandas数据读取Open-booknewspaperAccess:PandasDataReading读取Excel宝卷:read_excel()ReadExcelTreasureBook:read_excel()import

pandas

as

pd#读取

Excel

⽂件df_excel=pd.read_excel(

I

hydro_data.xlsxI)print("从Excel⽂件读取的数据:")print(df_excel)读取Excel⽂件Pandas的pd.read_excel()函数用于读取MicrosoftExcel文件(.xls或.xlsx格式)读取CSV:read_csv()ReadCSV:read_csv()CSV(Comma-SeparatedValues)是—种纯⽂本格式,⽤逗号分隔值,⼴泛⽤于数据交换。CSV⽂件简介⽇期,⽔位(m),流量(m³/s)2023-10-01,145.5,1200.02023-10-02,145.2,2023-10-03,,1250.22023-10-04,145.0,1180.0CSV⽂件内容示例:#读取CSV

⽂件try:df_csv=pd.read_csv(

I

hydro_data.csvI)print("从CSV⽂件读取的数据:")print(df_csv)exceptFileNotFoundError:print("⽂件不存在,使⽤之前的示例数据")df_csv=df_excel.copy()#将⽇期列转换为

datetime对象if

I

⽇期

I

indf_csv.columns:try:df_csv

[

I

⽇期

I]=

pd.to_datetime(df_csv

[

I

⽇期

I])exceptException

as

e:print(f"⽇期转换错误

:{e}")读取Excel⽂件Pandas的pd.read_csv()函数用于读取CSV文件。02第二节探查疏漏:检测缺失值Detectionofomissions:Detectmissingvalues何为缺失值?数据中的NaNWhatisamissingvalue?NaNinthedata查看之前的示例数据缺失值示例日期水位(m)流量(m³/s)2023-10-01145.51200.02023-10-02145.2NaN2023-10-03NaN1250.22023-10-04145.01180.0黄⾊背景标示的单元格是缺失值"水文奏报"之中,常有墨迹不清、记录遗漏之处,此即为"缺失值"。在Pandas中,常以

NaN(NotaNumber)

示之。照妖镜:isnull()与notnull()MagicMirror:isnull()andnotnull()欲知何处有疏漏,需⽤isnull()"照妖镜"一探,疏漏之处(

缺失值)即显True形。isnull():

返回一个布尔型DataFrame缺失值位置为True,非缺失值位置为False。notnull():

与isnull()相反,非缺失值位置为True。检测缺失值#检测df_csv

中的缺失值print("检测缺失值(isnull()):")print(df_csv.isnull())isnull()输出示例日期水位(m)流量(m³/s)FalseFalseFalseFalseFalseTrueFalseTrueFalseFalseFalseFalseTrue表示该位置有缺失值疏漏汇总:isnull().sum()SummaryofOmissions:isnull().sum()欲知各列疏漏⼏许,可将isnull()之结果按列加总(sum()),便—⽬了然。对isnull()返回的布尔DataFrame调用.sum()方法,可以按列统计缺失值的数量。统计缺失值数量输出示例#每列的缺失值数量print("每列的缺失值数量:")print(df_csv.isnull().sum())#总缺失值数量print(f"总缺失值数量

:{df_csv.isnull().sum().sum()}")每列的缺失值数量:⽇期

0⽔位(m)

1流量(m³/s)1dtype

:

int64总缺失值数量:

2df.isnull()每列缺失值计数03第三节补天之术:处理缺失值TheArtofMendingtheSky:Dealingwithmissingvalues策略⼀:断舍离-删除缺失值(dropna())StrategyOne:Decluttering-DeletingMissingValues(dropna())dropna()用于删除包含缺失值的行或列。dropna()基本⽤法how:'any'(只要有一个NaN就删除,默认)how:'all'(所有值都是NaN才删除)subset:

列表,指定在哪些列中检查缺失值常⽤参数#删除任何包含缺失值的⾏df_dropped_rows_any=df_csv.dropna(how=

IanyI)

print("删除任何包含缺失值的⾏后:")print(df_dropped_rows_any)#仅当所有值都为缺失时才删除⾏df_dropped_rows_all=df_csv.dropna(how=

IallI)

print("仅当所有值都为缺失时才删除⾏后:")print(df_dropped_rows_all)#基于特定列的缺失值删除⾏df_dropped_subset=df_csv.dropna(subset=

[

I⽔位(m)I])print("基于

I⽔位(m)I列缺失值删除⾏后:")print(df_dropped_subset)dropna()删除缺失值流程图dropna()removestheflowchartofmissingvalues原始数据有缺失值dropna(how='any')清理后数据⽆缺失值删除有NaN的⾏执⾏匹配的except块只删除全为NaN的⾏dropna(how='all')按特定条件筛选只检查特定列dropna(subset=['列名'])策略⼆:妙⼿回春-填充缺失值(fillna())StrategyTwo:MiraculousRevival-FillingMissingValues(fillna())fillna()用于填充缺失值,有多种填充策略。fillna()常⽤填充⽅式⽤标量值填充(如0,"未知")⽤统计值填充(如均值、

中位数)⽤前⼀个有效值填充(method='ffill'或'pad')⽤后⼀个有效值填充(method='bfill'或'backfill')常⽤填充⽅式#⽤特定值填充所有缺失值df_filled_scalar=df_csv.copy()df_filled_scalar

[

'⽔位(m)']=df_filled_scalar

[

'⽔位(m)'].fillna(0)df_filled_scalar

[

'流量(m³/s)']=df_filled_scalar

[

'流量(m³/s)'].fillna(0)print("⽤0

填充所有数值缺失值后:")print(df_filled_scalar)#⽤每列的均值填充该列的数值缺失值df_filled_mean=df_csv.copy()mean_water_level=df_filled_mean

[

'⽔位(m)'].mean()df_filled_mean

[

'⽔位(m)'].fillna(mean_water_level,inplace=True)print(f"⽤⽔位均值({mean_water_level:.2f})填充缺失值后:")print(df_filled_mean)#⽤前—个有效值填充(ffill

-

forward

fill)df_filled_ffill=df_csv.fillna(method=

'ffill')print("⽤前—个有效值(ffill)填充所有缺失值后:")print(df_filled_ffill)fillna()填充缺失值流程图Theflowchartoffillna()forfillingmissingvalues有缺失值的数据选择填充策略固定值填充fillna(0)

温馨提示

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

评论

0/150

提交评论