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

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])
  最后,我们用图例来比较一下删除缺失值、用中位数填充缺失值以及使用拉格朗日插值法后的数据密度分布情况:
  可以看出,拉格朗日插值来填充缺失值还是很不错的!
  好了,小伙伴们如果对处理缺失值有什么疑问,欢迎在评论区留言,咱们下期再见!~

快船官宣好消息!三巨头豪阵出炉,头号富豪狂投1。92亿美金据统计,勇士与快船是过去10年里,取胜场次超过500场的球队,其中勇士取得了527场胜利,快船取得了501场胜利。可结果却有点扎心,勇士夺得4座总冠军,快船却没有冠军。快船这些年还神仙打架完整版来了!成都世乒赛团体赛完整名单出炉东道主中国队正在成都备战,其他队伍以及参赛人员将于9月26日抵达成都。抽签仪式将于9月28日举行,男子参赛队将分为7组,女子参赛队将分为6组,小组排序依据国际乒联团体世界排名进行。勇士官宣新决定!西蒙斯大方回应,科尔提出两要求,快船胃口大开NBA休赛期进入尾声,过几天就是各支球队训练营开启时间。也就是说,想要交易或者签约的球队,接下来就要抓紧时间。一旦等到训练营开始,再做这些事情就要考虑到球员的面子了。那么近期有哪些棋坛泰斗陈祖德前妻和姐姐也家喻户晓,他再婚为何娶保姆?头条创作挑战赛点击关注,每天都有名人故事感动您!陈祖德陈祖德是新中国第一代围棋领军人物,他创造的中国流布局,在世界范围内影响甚广。陈祖德于196219641974年,三次获得全国围王天一爆料无法再跟郑惟桐有交手的机会了2022年9月22日晚,王天一在虎牙直播中,讲解了刚刚结束的第二届上海杯象棋赛决赛局的得失情况,并且爆料接下来的国手赛郑惟桐不参加了!无法再跟郑惟桐有交手的机会了!王天一2022年5分惜败!亚洲冠军或无缘8强,中国女篮淘汰赛对手浮现再战苦主北京时间9月23日,女篮世界杯进入到第二个比赛日的争夺,B组第二轮的一场强强对话中,塞尔维亚女篮对阵日本女篮。这场比赛的结果会直接影响B组的出线形势,甚至会间接影响中国女篮在淘汰赛姚明和妻子叶莉近况41岁叶莉年轻如少女,12岁女儿身高1米82016年9月10日,对于中国篮球来说,是一个永远值得记住的日子。就在这一天,中国球员姚明,与艾弗森和奥尼尔等NBA著名球星一起,在美国篮球名人堂总部穿上了象征荣誉的橙色夹克,就此福原爱告白信遭曝光!各种撒娇腻歪,破坏男友家庭是真的?日本人在中国很难获得喜爱,毕竟曾经的种种事情还在时刻提醒着活着的人过去发生的事情。福原爱作为日本人却成为了一个例外,很多人都非常喜欢她。当江宏杰成功把她拐到了中国成为中国媳妇后,引为什么只有人会说话(拼音版)儿童故事本文适合有一年级和二年级识词基础的小学生阅读朗读。为什么只有人会说话?古时候,传说(chunshu)所有的动物都会说话(hushuhu),整天(zhngtin)唧唧喳喳(jjzhz千万别把自己的脚,伸进别人的鞋里!(精辟)庄子曰未经他人苦,莫劝他人善。我不是你,你不是我,谁对谁也难以身同感受。脚下的路不同,人生也各有不同人心,难免会因人而异。人生在世,能做到了解你的人,唯独你自己。与人相处最舒服的是羊城四季夏雨前序不为什么是一份送给父母的礼物。是自己在母亲父亲及亲人们的呵护下,被人期望,恩承关爱,殷切守望的记录是一路向阳,虚心求学,叩问人生意义的记录是冬日的暖阳,是光阴的脚步,是生之疑惑
曾经想要去夜市卖金鱼,现在好怕啊最近,有个事让人听了挺闹心,说是某夜市一男子因卖猫被城管罚款,一只100块钱,男子恼了,当着城管面摔猫。想到以前也有这样的事,一个卖西瓜的商贩被城管扣车罚款,然后商贩把西瓜一个个都小的历史故事(八)三国鼎立是指魏国蜀国吴国。三国的皇帝分别是曹丕刘备孙权。三国(220年280年)是中国汉朝与晋朝之间的一段历史时期,分为曹魏蜀汉东吴三个政权。220年汉朝丞相曹丕篡汉称帝,定都洛阳就在今天!渝北发放2000万元优惠券,等你来抢!6月10日至11日,2022年渝北区文化旅游惠民消费季(春夏)将在重庆中央公园商圈大悦城盛大启幕!据了解,惠民消费季将持续到8月底,活动期间九项活动精心烹饪的文旅大餐强势来袭点燃城念从前,问君可曾记否?念从前,三更月下赏月圆,谁人相伴?思念寄与清风传,问君可曾记否?念从前,长长网线心相连,夜深无眠。互诉心声长相伴,问君可否留恋?念从前,曾经温馨的话语,沁人心扉,空守承诺真好难,问肖央误杀2,延续父爱,一场老实人的反抗讲述了林日朗(肖央饰)与妻子阿玲儿子小虫一直过着清贫但幸福的生活,直到儿子小虫突发意外急需救治,几经周折,走投无路的林日朗为了救儿子决定放手一搏,并制定了一个惊天计划。为了拯救自己美日接连求见中国防长,万一真的擦枪走火,最怕的还是美日自己新加坡方面确认,备受各方关注的香格里拉对话,也就是亚洲安全峰会,将于当地时间6月10日正式开幕,为期3天。在目前国际局势不稳,地缘对抗加剧的大背景下,此次专门给各国防长提供的交流窗有人说总是外国艺术,难道我们国家没有艺术吗?上一篇介绍到17世纪欧洲美术巴洛克艺术的形成以及古典主义艺术。看到有网友在评论区留言说总是外国艺术,难道我们国家没有艺术吗?。针对这个疑问,我跟大家解释一下。首先,我介绍美术史是从买食盐,别管价格高低,认准盐袋上3个指标,再便宜也是好盐在咱们寻常老百姓的厨房中,食盐可以说是最常见的一样调料,毕竟盐乃百味之首。关于怎样挑选食盐这事,很多人只看价格或牌子,甚至认为价格越贵的盐就越好,其实这是个大误区。如今超市货架上的破天荒,苹果花呗来了在今年的WWDC苹果全球开发者大会上,苹果宣布了ApplePayLater先买后付服务。这意味着苹果终于要进军金融业,苹果花呗要来了。按照苹果的说法,目前分期服务支持6周内分4期,我国哪里可以捡到红宝石和蓝宝石?这份寻宝指南请收好了红宝石和蓝宝石是著名的贵重宝石,这两种宝石在国外是久负盛名,特别好缅甸,巴西,印度,斯里兰卡,泰国,越南,这些盛产宝石的地方,其实我国国内也产红宝石和蓝宝石,我们一起来看看我国哪些中俄对日本警告升级,40艘战舰20架飞机出动,日方火速对华作承诺作为美国的忠实附庸,日本在对外政策上和美国亦步亦趋,在遏制中俄的问题上尤其如此。中俄不再克制,双双发起对日本升级的警告,仅俄军就有40艘战舰和20架飞机出动,日方被迫对中国作出承诺