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

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

稻香村始终坚持只此一家无分外,全国其他的店都是假品牌吗?这句话的背景是上世纪20年代苏州稻香村对各地出现的仿冒稻香村店铺的维权宣言。苏州稻香村于1773年起源于苏州,第一家门店开在苏州观前街,相传当时稻香村受乾隆皇帝喜爱,特赐匾稻香村。如何锻炼跑步能力,让自己跑的更远?跑步这件事,我们都会做。一提到瘦身减肥,可能第一想到的就是跑步,可是怎么跑的更有效?怎样跑步瘦的更快?如果你是跑步新手的话,你需要这样做间歇跑,跑累了就走,缓过气后再跑起来,这样走不要把希望寄托在武磊身上了,武磊的水平真的不行吗?没有武磊的国家队,只输不赢,没有人进球,归化球员真不如武磊。没有武磊还踢什么十二强了,早出局了!看着武磊不行,中国足球其他人更没得看了。每天那么多人津津乐道的喷足球,还不是要感谢武才40岁身上就有很多毛病,总是担心哪天身患绝症,该怎么调整心态?没有十五分钟以上耐心的人就不必看此文了,但是这篇文章给你带来的知识是你这辈子无论从哪儿也学不到的,对现代医学来说可能有些超前。生命属于我们每个人只有一次,传统的医学观念,认为癌症绝担任阿联训练营教练,广东外援积臣一年能从阿联身上赚到多少钱?谁是CBA历史上最成功的外援,很多球迷或许会想到带领北京首钢拿到三个冠军的马布里,可是马布里身上毕竟还是有太多的争议,也因为如此,在说到CBA最成功的外援,更多的球迷会想到一个如今宝宝的脸上身上经常会冒出一些疹子,应该如何简单区分呢?宝宝出疹子,除了发热时的疹子,其余时候的出诊多见于湿疹,多与遗传免疫有关,多数宝宝对牛奶蛋白过敏。表现为皮肤散发或集中的小红丘疹,逐渐增多,有的可见小水疱,严重时可有渗出感染,宝宝中国企业该从华为身上学什么?中国企业能从华为身上学到的东西很多,每个人的看到也肯定有不同。这里从制造业角度来聊几点(这肯定不是全部)不整虚的,所以表述尽量通俗易懂。有引证不同文章的观点,和案例的地方。不要介怀喝绿豆汤有哪些好处?天气渐渐热了,绿豆汤作为中国民间传统的解暑佳品该亮相了!因其具有清热解毒止渴消暑的功效,是营养价值和经济价值较高的一种汤类,深受大家的喜爱。煮绿豆汤也有学问呢1清热作用。绿豆的清热为什么有人无缘无故就得了癌症?妈妈是膀胱癌去世的,唯一的不舒服就是小便。本来妈妈也是体检发现的,所以我们都认为就是突然得的,但是现在想想,其实妈妈小便问题十多年前就有了。十多年前,妈妈就因为小便不舒服经常看妇科2021年底,各大房地产都在裁员降薪,该怎么办?作为地产猎头,对这个问题我是最有发言权的。首先,你所说的各大地产都在裁员降薪,是放大了危机,事实上并不是如此,有些公司基本上没有什么裁员,有些只是区域或者某些职能部门或者板块调整。负债累累的人为什么还死要面子?死要面子活受罪,我就是一个例子。2015学校出来工作,一个月3200,花钱大手大脚,每个月吃住花基本上月光族,偶然一次同事聚餐的时候,接触到了股票,这是我负债累累的导火索,我那同事
每日省思如何面对未知的不安感?头条创作挑战赛迷惘和不安其实是我们对于未知的两种负向情绪。迷惘更多来自于对未来的未知恐惧,不知道怎么选择更好。而不安则来自于对过去的糟糕经验,担心事情是否会变糟。而这两种情绪其实都要么入土为安,要么向天开枪书名命运作者蔡崇达这本书适合最近特别焦虑,或感到绝望的朋友来看。书中的阿太,被命运安排了太多的苦难,而她没有选择躺平,更没有选择逃避,她选择的是朝命运开枪。以阿太的五段回忆,以她一2022年结束了,我收获了什么?今天是2022年的最后一天,也是值完48小时班后的下夜班。值班两天,前后判若两人,好像老了10岁。一直认为自己还年轻的我,今天突然意识到,自己已是中年。在这家医院已经正常工作了10心语该来的都会来,该走的也都会走,别抗拒,别挽留心语心情Jan12(1)本想随着时间推移会慢慢淡化反之变本加厉,连我都不认识自己该怎么表达此时此刻的心情呢?明知不可为而为之(2)生活就是泥沙俱下鲜花和荆棘并存我们带着诚意慢慢来只孩子都在外成家立业,老两口一天一天见老,老伴去世时不满六十五乡村火警文王新军入秋之后,天气还和夏天一样热,早上短暂的清凉时光,因而显得更加珍贵。屋后的果园里,鸟在这段凉爽的时光中,叽叽喳喳,吵成一片,仿佛在迎接什么。阳光从柴墙中腰处穿过树枝影响一生的5个自律法则二八法则在平时的工作和生活中,常会听到有人抱怨太过忙碌,总是事情追着事情。二八法则说的是80的产出,来自20的输入。我们无需面面俱到,将注意力集中在最重要的事上,往往就能掌控全局。新网师人一日叙事20230112冯美娟与美好相约凛冬的夜更静了,连北风也睡去了,只听马路上大货车沉重的哐当声越来越近,迅速与黑夜打过招呼又呼啸着奔赴它的约定去了。愿冬夜有温暖守候,愿幸福在终点等候。而我也要奔赴一场约会,缘分总是冰花须将肮脏的肉体弃于红尘只带着洗了又洗的灵魂来观看一场浩大规模的盛开八百里松花江诗意的名字鬼斧神工绝世之美当眼睛掠过如画的鸿篇巨构巨大的玻璃镜面上的天人手笔叹为观止琼妃剪琭暗把素尘偷法律解读驾驶证代扣的违法行为律师来帮忙众所周知,现如今电子警察的产生和应用让非现场代替了现场处罚,这就导致了一种非常常见的现象,那就是违法行为代扣分成为了一种可能,而且是一种很常见的现象。法律法规的缺失以及记奥密克戎XBB到底有多少属性?!能逃逸,能缩短?大家好,我是新人小星辰,希望大家多多关照,多多关注!刚才看到一个关于XBB的消息,专家称XBB可能缩短免疫保护期!这回专家用了个比较模糊的词汇,可能!为什么会这样呢?还不是因为近期狂飙前五集这10个细节瑕疵,也遮不住它成为年度剧王的光芒谁也没有想到,在新春佳节到来之际,央视八套会以这种独特的方式,向全国观众奉上一席以扫黑除恶为题材,令人荡气回肠的影视艺术精神大餐。这是一部黑恶势力崛起的编年史,细数了以京海市高启强