范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

1。1数据缺失值处理

  小伙伴们,今天我为大家介绍一下什么是缺失值以及怎样处理缺失值(Missing values)的问题。
  数据缺失主要包括我们在输入数据时,记录缺失和字段信息缺失等情况,缺失数据是一种常见现象,会对从数据中得出的结论产生重大影响。
  首先,我们导入相关库import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy import stats %matplotlib inline #解决中文显示问题 plt.rcParams["font.sans-serif"]=["SimHei"] plt.rcParams["axes.unicode_minus"] = False# 创建数据 df = pd.DataFrame({"value1":[22,33,55,123,np.nan,np.nan,66,54,np.nan,99,180],                   "value2":["a","b","c","d","e",np.nan,np.nan,"f","g",np.nan,"g"]}) df
  #查看缺失值 # Dataframe直接判断是否是缺失值,返回一个Series df.notnull()
  # 通过索引判断 df["value1"].notnull()
  # 注意和 df2 = df[df["value2"].notnull()] ["value1"] 的区别 df2 = df[df["value2"].notnull()]     df2
  现在,我们来看看用哪些方法来处理缺失值:
  a. 删除缺失值 - dropna# drop方法:可直接用于Series,Dataframe df3 = df.dropna() df3
  伙伴们可以把原始df与drop nan值之后的下表比较一下:
  b. 填充/替换缺失数据 - fillna、replace# 创建数据 s = pd.Series([12,33,45,23,np.nan,np.nan,66,54,np.nan,99]) df = pd.DataFrame({"value1":[12,33,45,23,np.nan,np.nan,66,54,np.nan,99,190],                   "value2":["a","b","c","d","e",np.nan,np.nan,"f","g",np.nan,"g"]}) print(s) s.fillna(0,inplace = True) print(s)
  Nan值已经变成了0。
  左为原s,右为fillna后的结果
  看一下fillna的方法参数:# s.fillna(value=None, method=None, axis=None, inplace=False, limit=None, downcast=None, **kwargs) # value:填充值 # 注意inplace参数
  DataFrame使用fillna的代码和结果:df["value1"].fillna(method = "pad",inplace = True) df
  左为原df,右为fillna后的结果
  我们也可以使用中文来代替缺失值:s = pd.Series([1,1,1,1,2,2,2,3,4,5,np.nan,np.nan,66,54,np.nan,99]) print(s) s.replace(np.nan,"缺失数据",inplace = True) print(s)
  左为原s,右为fillna后的结果
  c. 缺失值插补, 使用均值/中位数/众数插补、临近值插补、插值法s = pd.Series([1,2,3,np.nan,3,4,5,5,5,5,np.nan,np.nan,6,6,7,12,2,np.nan,3,4]) print(s) # 分别求出均值/中位数/众数 u = s.mean()     # 均值 me = s.median()  # 中位数 mod = s.mode()   # 众数 print("均值为:%.2f, 中位数为:%.2f" % (u,me)) print("众数为:", mod.tolist()) # 示例: 用均值填补 s.fillna(u,inplace = True) print(s)
  均值
  用均值填充NaN值
  用前值填充Nan值:s = pd.Series([1,2,3,np.nan,3,4,5,5,5,5,np.nan,np.nan,6,6,7,12,2,np.nan,3,4]) s.fillna(method = "ffill",inplace = True) print(s)
  d. 用拉格朗日插值法, 拉格朗日插值就是计算出相关x的系数来拟合多个点的方法。
  例如:from scipy.interpolate import lagrange x = [3, 6, 9] y = [10, 8, 4] df = pd.DataFrame({"x": np.arange(15)}) df["y"] = lagrange(x,y)(df["x"]) # df plt.plot(df["x"],df["y"], linestyle="--", color="k")
  y值就是通过拉格朗日插值法拟合函数后可能的结果:
  拉格朗日插值
  拉格朗日插值法,实际运用:data = pd.Series(np.random.rand(100)*100) data[[5,6,33,56,45,66,67,80,90]] = np.nan # 密度图查看缺失值情况 data_c = data.fillna(data.median())  #  中位数填充缺失值 fig,axes = plt.subplots(1,4,figsize = (20,5)) data.plot.box(ax = axes[0],grid = True,title = "数据分布") data.plot(kind = "kde",style = "--r",ax = axes[1],grid = True,title = "删除缺失值",xlim = [-50,150]) data_c.plot(kind = "kde",style = "--b",ax = axes[2],grid = True,title = "缺失值填充中位数",xlim = [-50,150]) # 创建函数,做插值,由于数据量原因,以空值前后5个数据(共10个数据)为例做插值 def na_c(s,n,k=5):     y = s[list(range(n-k,n+1+k))] # 取数     y = y[y.notnull()]  # 剔除空值     return(lagrange(y.index,list(y))(n))  # 缺失值插值 na_re = [] for i in range(len(data)):     if data.isnull()[i]:         data[i] = na_c(data,i)         print(na_c(data,i))         na_re.append(data[i]) data.dropna(inplace=True)  # 清除插值后仍存在的缺失值 data.plot(kind = "kde",style = "--k",ax = axes[3],grid = True,title = "拉格朗日插值后",xlim = [-50,150])
  最后,我们用图例来比较一下删除缺失值、用中位数填充缺失值以及使用拉格朗日插值法后的数据密度分布情况:
  可以看出,拉格朗日插值来填充缺失值还是很不错的!
  好了,小伙伴们如果对处理缺失值有什么疑问,欢迎在评论区留言,咱们下期再见!~

元宵节出行提醒沈阳这些路段将临时调流!2月5日(周日)就是元宵节啦今年,元宵节恰逢休息日你打算去哪儿玩?2月2日,3米高巨型宫灯亮相沈阳一商场。元宵佳节将至,商场里节日气氛浓。张文魁摄沈阳公安交警提示(一)节日期间,我河北高阳山药兄弟销冠哥哥转型线上,弟弟成最强辅助亩产量6000斤的山药地,优质麻山药约占13。算下来,100亩地有20万斤。而这,仅仅是淮药之家网店一天的销量。在线下档口,十天半个月才能卖完20万斤。创造这个奇迹的,是河北保定高住了月子中心产妇却得了月子病临沂东方幸福国际母婴会所问题不大半岛网2月3日讯产后花了2。5万元住进月子中心,最后却落下了月子病。近日,临沂的吴女士(化名)向半岛网(053280889233)反映,去年顺利生产后她在临沂东方幸福国际母婴会所(家里有儿子的都纠结过这个问题!这个寒假割就对了!每次一临近假期各大儿科群里就会出现一波老母亲的对话我家崽最近老是喜欢抓小鸡鸡,都发炎了我儿子也是,而且样子看着像包茎有带崽去做过包皮手术的妈妈么?几岁可以割啊?割完效果咋样?包皮到元宵节交警提醒!收着!有用!小伙伴们周日元宵节怎么过是准备逛街购物还是猜灯谜?不管去哪先来看看天气天气情况元宵节当天,晴转多云,东南风3到4级,气温2到11。路况预测城市道路01海州区海连路巨龙路苍梧路人民路新春走基层中国电信加强网络优化保障群众快乐闹元宵来源通信信息报社春节过后马上又迎来农历正月十五,也是中国传统的元宵佳节,今年的元宵节是解除疫情防控措施后的首个元宵节,河北省沧州许多景区组织了相关迎春活动,为保障好业务高峰时段的网团圆日元宵节正月十五元宵节,又称上元节小正月元夕或灯节,时间为每年农历正月十五。正月是农历的元月,古人称夜为宵,正月十五是一年中第一个月圆之夜,所以称正月十五为元宵节。元宵养生不论是元宵还是汤宜春,千兆城市!5G五彩梁塅数字乡村项目构建起15X网络乡村振兴模式,江西晶昊盐化5G全连接智能工厂示范建设项目打造了平台5G应用的新一代全连接智能工厂近年来,我市深入实施数字经济一号发展工程,推被张元英妆毁掉的中国女明星们!不知道大家有没有发现,现在女明星的妆容越来越没有特色了?!就拿前阵子的元旦晚会来说,感觉大家都好爱这种打了两斤腮红大闪片眼影死亡高光鼻影的妆容。这不就是隔壁韩娱的女团打歌妆容吗?这女篮全明星深圳闹元宵本周末,2023年WCBA全明星活动在深圳龙华举行,此前公布的正赛名单星光熠熠。而据记者了解,除了诸多女篮国手都将在元宵夜亮相赛场外,还会有一众女篮传奇名宿以及冬奥会冠军加入到本次拒绝逆转!汤普森142,丁威迪253,普尔太尴尬,库里成历史第一北京时间2月5日,NBA常规赛勇士主场迎战独行侠,赛前,勇士26胜26负排名西部第10,而独行侠28胜25位居西部第4,此役东契奇缺阵,库里会有怎样的发挥值得期待。首发阵容方面,勇
研究孩子缺铁智商变差!妈妈做好这4件事,防止缺铁娃更聪明文菁妈如果你在没怀孕之前都一直有缺铁性贫血,在孕期也被缺铁困扰着!如果你的孩子很喜欢喝奶,不喜欢吃辅食,一岁之后还是以奶为主!如果你的孩子面色,皮肤眼睑比较苍白,指甲都没有!如果你何时睡,睡多久,孩子才会更聪明何时睡,睡多久,孩子才会更聪明!秋天快要结束了,冬天正悄悄来临。季节交替时,人体对睡眠的欲望就会更大。而睡眠对于孩子而言尤为重要,今天就和大家分享最科学的孩子睡眠时间表。孩子的睡眠幼儿园中存在的潜规则,老师不会明说,但聪明的家长要了解每个行业都有不为人知的原则或者所谓的潜规则,就像那些年流行的一句话惹毛一个职业一样,在外人看来或许没什么,但是对于行业内的人来说,的确是比较介意,这样的潜规则在幼儿园中也是存在的。差等生不会喜欢优等生?C罗机关算尽太聪明,更显得心胸狭隘C罗差等生不会喜欢优等生。机关算尽太聪明,更显得心胸狭隘C罗的职业态度没得说,无论是什么样的状态,在球场上他都是全力以赴追逐胜利的球员,这一点他和很多优秀球员一样,可以称为职业球员从月入近百万沦落到卖大蒜,北京电影人环球影城?我只能进去卖爆米花本文来源时代周报作者石恩泽国庆假期过去了,环球影城仍然很热。作为新晋网红,环球影城号称人均消费3000元。园内,挥着349元的哈利波特魔杖,吃着195元的小黄人爆米花喝着50元一杯中医祖传看家方中医祖传看家方,共20。6MB,共15页。古籍屋收藏,中医秘方系列,更多关于中医秘方的古籍,看本文清单。感觉不错关注留言点赞。是对我最好的支持!中国中医秘方大全(文汇出版社1989入秋贴秋膘这道菜不能少,入口香糯肥而不腻,汤汁用来盖饭倍儿香生活有温度近几日,在广东算是有感觉到了秋天,这几天早晚温差比较大,早晚风凉飕飕的,吹着有些许凉意,而到了中午太阳一出来又感觉有点燥热,若不吹空调,还是有些许的闷热。眼看着很快就要步场均20。410。6!昔日第一中锋,如今无球可打,考辛斯的路在何方德马库斯考辛斯想必大多数人都不陌生,相信大部分球迷们对考辛斯都是比较惋惜的,如果没有伤病,考辛斯的高度也许会更上一层楼。健康的他能在联盟的内线翻江倒海,内线能对抗,外线能投射,脚步霍华德,你被所有人给耍了新赛季的战火已经燃起,恰逢NBA75周年的一个赛季注定精彩纷呈。卫冕冠军雄鹿以马踏飞燕的姿态气质升华,湖人集结詹眉威的360组合誓要复仇。篮网和勇士等队都在虎视眈眈,这赛季对于很多好兄弟入选NBA75大球星自己落选,勇士汤普森不满发文NBA本赛季迈入75周年,联盟先前宣布将选出75大球星(75thAnniversaryteam)作为庆祝活动的一环,经过媒体现役及退役球员教练总管及高层所组成的评选小组票选后,今完如何打好羽毛球(附图片)羽毛球是一项有趣的运动,也是一种很好的锻炼方式。要想成为一名击倒对手的羽毛球运动员,你必须有闪电般的速度过硬的技术和狡猾的战略意识。如果你已经知道如何打羽毛球,但想提高你的比赛,你