版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、pandas计算含缺失值中列平均值_Python数据分析缺失数据.(10)几乎任何一个数据集都含缺失数据。缺失数据有多种表示形式。在数据库中,缺失数据表示为NULL值;在某些编程语言中使用NA表示。根据数据的来源,缺失值可能是空存字符串(“)或数值(比如88或99)。在Pandas值使用NaN表示缺失值。Pandas中的NaN值来自NumPy库,在NumPy中,缺失值有几个表达形式:NaN、NAN或者nan,但它们都是等同的。缺失值和其它类型的数据不同,实际上它们无甚意义。数据缺失了,也就无所谓等于或不等于°NaN也不等同于0或者空字符串(“)。Pandas可以使用isnull方法测
2、试某个值是否为缺失值,notnull方法也可用于判断某个值是否为缺失值。数据加载时Pandas会自动查找缺失数据单元,并在DataFrame中对该单元给出一个NaN值。在read_csv函数中,有3个参数与缺值的读取有关:na_values、keep_default_na和na_filter。na_values参数允许指定额外的缺失值或NaN值,读取文件时,可用传入Pythonstr或列表对象,自动将其编码为缺失值。当然,现有默认缺失值(如NA、NaN、NAN)可用,因此该参数并不常用。有些良好数据可能会把99指定为缺值,只要设置na_values=99即可。keep_default_na参数
3、是布尔值,它允许指定是否要把其它任何视为缺失值。默认情况下该参数为True,这意味着使用na_values参数额外指定的缺失值都会追加到缺失值列表中,不过也可用把keep_default_na设置为False(keep_default_na=False),这将只使用na_values中指定的缺失值。na_filter参数也是布尔值,用于指定某些值是否会被解读成“缺失值”。默认情况下,na_filter=True表示缺失值会被编码为NaN。如果设置na_filter=False,那么不会将任何值重新编码为“缺失值"。可用把该参数看作关闭na_values和keep_default_na
4、参数设置的一种方法,想通过加载不包含缺失值的数据来提升性能时经常使用它。visited_file=''survevisit-ed曾'print(pd?read_c$v(visiidentsitedatde619DR-11027-02-681622DR-11R2.7-02-102734DR-31-01*973735DR-31930-01-124751DR-3193-02-26&?S2DR-3NaN6.S37MSK-419327844-DR-112-03-22prinitku1False)identsitedated&619DR-11927-02-08162
5、2DR-11027-021G2734DR-33935-01-073735DR-54751DR1930-022657S2DR-3gS37N5K-41932-01-141B44DR-1132-0J-22prlntfpd-readlCsvviSiitedfilSj,navaluessf''keepdefaulTnasFalse)IdentSitedated0619DR11927-02-081622DR11927-02-IB2734DRj1939-01-073735DR33930-01-124751DR319902265752DR3NaN合并输出中出现缺失值visited=pd.irB
6、adl.匚毎”('牙刍it已dc5vr,)survey三pdlread_civ'surveysurveyc&v')vs二visitedwinergesum/eyIwFt.on二'iderrt;1,ri11aken1)print(vs)identsitedatedtakenpersonquantreading0619胆-11927-52-W619dyerrad9hB21619DR-11927-G2-986J9dyersal0.132622DR-11927-02-10血dyerrad?.seS622DR-11327-02-16622djersale.9473
7、4DR-3199-01-07734Pbrad£.415734DR-319S9-B1-07734lake空呂10.056734CR-31939-02-37734Ptterp-21.773SDR-3193&-01-1273&Pt>rad7,22873S3R-21930-91-1273&隔Msal日廊973SDR-31930-01-1273NaNteTp-26.06107S1CRT1930-02-267S1Pt>rad4.3511751DR-31939-02<6751Pt*temp-is.se12751?R<1930-0226751lakes
8、al0.1613752DR-3NafJ?S2lakerad2.19147S2OR-3JaN752“1e,091!7S2DR-3NaN752lk»temp-is.ee167S2DR-3NaN752roesal41.6017837MSK.-A1932-01-14837lakerad1.4618S37惦K-41932-Bl-1+837lakesal0.211Q1T1an.ai_i>iQ1Treagi也可用自行创建缺失值,比如依据计算或人工向量来创建值向量。对应Series和DataFrame来说,NaN是有效值。num_legs二pdSeries('goat*:4#'
9、amoeba':nan)print(numlegs)goat4.0amoebaNaNdtype:float64df=pd.DataFran:e("name':Rosaline1,wllianft*'occ1:chemist'statistician*,born-:1920-07-25'J1876.06-13',died':11958-05-161/1937-10-16',missing':NaNnan)print(df)nameoccborndiedmissing0Rosalinechemist1920-67-2
10、51958-05-15NaN1wlliamstatistician1876-06-131937-10-16NaNdfl二pd.DataFrame(,name,:'Rosaline''wlliam*,*occ*:"chemiststatistician*,born':,1929-07-25,1876-06-13,>died1:,1958-05-16,/1937-10-16',)dfl'missing*=nanprint(dfl)nameoccborndiedmissingdf_ebola=pd.read_csv('courr
11、trytimeseniescsv)df_ebola.head()DateDayCases_GuineaCase$_LiberiaCa$e$_SierraLeone01/5/20152892776.0NaN10030.011/4/20152882775.0NaN9780.021/3/20152872769.08166.09722.031/2/2015286NaN8157.0NaN412/31/20142842730.08115.09633.0#统计非缺失值的个数print(df_ebolacount()Date122Day122Cases_Guinea93Cases_Liberia83Cases
12、_SierraLeone87CasesNigeria38Cases_Senegal25Cases.UnitedStates18Cases_Spain16CasesJIali12Deaths_Guinea92Deaths_Liberia81Deaths_SierraLeone87Deaths_Nigeria38DeathsSenegal22Deaths_UnitedStates18Deaths_Spain16Ma!i1?ffW疔数减去不包泮缺先屈矽疔欽num_raws=d-F_ebolaTshapef©mjm_missing=num_row5-d-febola.ccunt()prin七
13、(num!_miEsin呂)a:3984971041枚6lieDateDayCases_Gul«ea匚asesLiberis匚ases_SierraLeonmC165_Nieri诵Cases_SenegalCases_UnitedStat皀sCases_$painCasesMaliDeath&_Guinea北Deaths_Liberia41Deat?i£_SLerraLeone35Deaths_Nigeri384Deaths_sertegal100Deaths_UnitedStates104Deaths_Spain106iMaii116如果想统计数据中缺失值的总数,
14、或者特定列中缺失值的个数,可用使用Numpy中的count_nonzero函数和isnull方法。也可以使用Series的value_counts方法获取缺失值个数。impartnuTipasnpprintnp.coifnt_nonzero(df_ebola.isnirll()12丄4print(np.count_nonzero(d-F_ebolafasesuinea'.lsnull(j)29print(df_ebola<Cjses_Quinea,vaLue_counti(dropna=False).head()Nan博86h0349"2llS-fl2处理缺失数据的方法
15、有多种。比如可以用其它值替换缺失数据,使用现有数据填充缺失数据,或者直接将其数据集中删除。重新编码/替换,可以使用fillna方法把缺失值重新编码为其它值。比如把缺失值重新编码为0。pr1nt(cJfehQla.-fi11na(a).Hoc(fl:10e:s)加#Ci«5_CuinwCj?es_Libia01/S/29L52曲277.00.01&03-0.011/4/2&152775.95780.021/3/2&15缈2769.08166.0722.63V2/2&L5412/3丄/2.白1427S&.08115.052&12兀£
16、;冶昶埠0612/27/20114.2M5,E.0712/24/2&14277药3罠07977.69203.0可以使用fillna方法把缺失值重新编码为特定值。查看文档,就会发现fillna和其它许多Pandas函数一样有inplace参数。开启该参数意味着直接在原始数据上进行改动,并不会新建副本。对于大型数据,若想保存代码高效,可以使用该参数。对于缺失值,可以使用内置方法做前填充(fillforward)或后值填充(fillbackward)。做前值填充时,将按照前一个值填充缺失值,这样缺失值就会被最后的已知值或被记录的值所替代。pri.nt(d-tf_ebal3.-Fillna(H
17、iartlYNlcifflll4).ilcc0:ljPat&e1/5/2151 1/4/2011&2 1/3/2153 1/2/eisQ12/31/2145 12/28/2146 12/27/7 12/2/23114J7TS月2T柚027J&.&2765.e"38用血nnshQ166.ES1578115.6 8M&.&seis.«7977.6978009722-e97Z2.0対4S.总0曲总9293,如果某一列以缺失值开始,那么该缺失值会继续存在,因为它前面没有值,也就无法执行前值填充操作。填充缺失值时,也可以采用后值填充法。
18、这种方法以最新值替换缺失值,这样缺失值就全被替换成了最新值。printCdebola.Ellina(method="bf111').llocf:jDateDayCase5_GuineaCaiesLiberiaCase&_5itrraLeone1173/27/2G14s193.eG.eILS3/26/20144&6.0IMSNMan1193/25/50143INaNtlaN如果某一列以缺失值结束,那么该缺失值会继续存在,因为它后面没有值了,也就无法执行后值填充操作。插值使用现有值来填充缺失值。填充缺失值的方法有多种,Pandas中的插值方法默认以线性方式填充缺值
19、。具体而言,它会把缺失值视为等距分隔值。DateDay匚35e5_6uxneaCsses_LiberiaCases_&ierraleoneL/V201&2阳277&,NaNl轴强冷1/4/2015z&a2775.0HaN9780,01/3/M15J&72769.68166.69722.fl1/2/20152詰2749.5S157.0$677.512/31/2814缈2730-0115,09&33011/28/2A142&-1270&-eeis.e944612/27/20142002695-07997*5爭卿12/24/201427
20、72630,e7977+9293.0printt.df_eboLerpclate9;5)246处理缺失数据的另一种方法是删除含有缺失数据的观测值或变量。不同数据集包含的缺失数据数量不同。对于某些数据集,如果只保留完整数据,那么最终得到的数据集很可能是无用的。或许缺失数据不是随机的,删除缺失值后,会得到有偏差的数据集。只保留完整数据也可能导致数据不足,无法开展分析。可以使用dropna方法删除缺失数据,并且可以通过设置参数控制删除方式。缺失值计算,只有在不含缺失值时,才会计算Cases_multiple的值。如果计算中包含缺失值,通常都会返回缺失值。当然,如果调用的函数或方法在计算中能
21、忽略缺失值,就另当别论了。df_eb&la'CaseS-multiple'=df_ebolarCase5_Guinea!+dflebala1CaseslLibtria1+df_ebola'Case&_SierraLeone'd卒jebolasub$et=df_ebola-loc:fcCases_Guineafc.cae$_lIberia'Xase&_SierrsLeone*3V日5-es_multiple'printdf_&bola_subset.(IB)tases&uln&aca5eswLlberlaCasesSierraLeon&casesultlple0"2776.eNaN10030_&NaN12775-
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年限定产品售后服务细则协议
- 南京信息工程大学《中外文化比较》2022-2023学年第一学期期末试卷
- 化学矿的提取工艺与设备考核试卷
- 煤炭气化与气能利用技术考核试卷
- 危险品仓储风险防控方案及应急预案编制考核试卷
- 信息系统的电子媒体与虚拟广告考核试卷
- 制糖产品包装设计改进考核试卷
- 炼铁工艺中的煤气发电与利用考核试卷
- 建筑行业专用:2024版安全生产培训记录表
- 化学矿床的开采与加工工艺技术比较研究考核试卷
- 2024年公路建设:泥浆外运及环保处理合同
- 江苏省苏州市吴中区2024-2025学年八年级上学期期中考试历史卷(含答案)
- 2024-2025学年上学期期中教育学业质量监测九年级历史试卷
- 【2024-2025】学年一上语文期中素养测评基础卷一
- 小儿血液透析的护理
- 人教版(2024新版)七年级上册数学期中模拟检测试卷(含答案)
- 民间借贷利息计算表
- 沪科版(2024)八年级全一册物理第一学期期中学业质量测试卷 2套(含答案)
- 精神病医院住院患者护理评估单
- 生活中的音乐教案
- 辩论赛评分表(完整版)-
评论
0/150
提交评论