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

20个Pandas数据实战案例,干货多多

  作者:俊欣
  来源:关于数据分析与可视化
  今天我们讲一下 pandas 当中的数据过滤内容,小编之前也写过也一篇相类似的文章,但是是基于文本数据的过滤,大家有兴趣也可以去查阅一下。
  下面小编会给出大概20个案例来详细说明数据过滤的方法,首先我们先建立要用到的数据集,代码如下  import pandas as pd df = pd.DataFrame({     "name": ["John","Jane","Emily","Lisa","Matt"],     "note": [92,94,87,82,90],     "profession":["Electrical engineer","Mechanical engineer",                   "Data scientist","Accountant","Athlete"],     "date_of_birth":["1998-11-01","2002-08-14","1996-01-12",                      "2002-10-24","2004-04-05"],     "group":["A","B","B","A","C"] })
  output      name  note           profession date_of_birth group 0   John    92  Electrical engineer    1998-11-01     A 1   Jane    94  Mechanical engineer    2002-08-14     B 2  Emily    87       Data scientist    1996-01-12     B 3   Lisa    82           Accountant    2002-10-24     A 4   Matt    90              Athlete    2004-04-05     C 筛选表格中的若干列
  代码如下  df[["name","note"]]
  output      name  note 0   John    92 1   Jane    94 2  Emily    87 3   Lisa    82 4   Matt    90 再筛选出若干行
  我们基于上面搜索出的结果之上,再筛选出若干行,代码如下  df.loc[:3, ["name","note"]]
  output      name  note 0   John    92 1   Jane    94 2  Emily    87 3   Lisa    82 根据索引来过滤数据
  这里我们用到的是 iloc 方法,代码如下 df.iloc[:3, 2]
  output  0    Electrical engineer 1    Mechanical engineer 2         Data scientist 通过比较运算符来筛选数据df[df.note > 90]
  output     name  note           profession date_of_birth group 0  John    92  Electrical engineer    1998-11-01     A 1  Jane    94  Mechanical engineer    2002-08-14     B dt属性接口
  dt 属性接口是用于处理时间类型的数据的,当然首先我们需要将字符串类型的数据,或者其他类型的数据转换成事件类型的数据,然后再处理,代码如下 df.date_of_birth = df.date_of_birth.astype("datetime64[ns]") df[df.date_of_birth.dt.month==11]
  output     name  note           profession date_of_birth group 0  John    92  Electrical engineer    1998-11-01     A
  或者我们也可以  df[df.date_of_birth.dt.year > 2000]
  output     name  note           profession date_of_birth group 1  Jane    94  Mechanical engineer    2002-08-14     B 3  Lisa    82           Accountant    2002-10-24     A 4  Matt    90              Athlete    2004-04-05     C 多个条件交集过滤数据
  当我们遇上多个条件,并且是交集的情况下过滤数据时,代码应该这么来写  df[(df.date_of_birth.dt.year > 2000) &      (df.profession.str.contains("engineer"))]
  output     name  note           profession date_of_birth group 1  Jane    94  Mechanical engineer    2002-08-14     B 多个条件并集筛选数据
  当多个条件是以并集的方式来过滤数据的时候,代码如下  df[(df.note > 90) | (df.profession=="Data scientist")]
  output      name  note           profession date_of_birth group 0   John    92  Electrical engineer    1998-11-01     A 1   Jane    94  Mechanical engineer    2002-08-14     B 2  Emily    87       Data scientist    1996-01-12     B Query方法过滤数据
  Pandas 当中的query 方法也可以对数据进行过滤,我们将过滤的条件输入 df.query("note > 90")
  output     name  note           profession date_of_birth group 0  John    92  Electrical engineer    1998-11-01     A 1  Jane    94  Mechanical engineer    2002-08-14     B
  又或者是  df.query("group=="A" and note > 89")
  output     name  note           profession date_of_birth group 0  John    92  Electrical engineer    1998-11-01     A nsmallest方法过滤数据
  pandas 当中的nsmallest 以及nlargest 方法是用来找到数据集当中最大、最小的若干数据,代码如下 df.nsmallest(2, "note")
  output      name  note      profession date_of_birth group 3   Lisa    82      Accountant    2002-10-24     A 2  Emily    87  Data scientist    1996-01-12     B df.nlargest(2, "note")
  output     name  note           profession date_of_birth group 1  Jane    94  Mechanical engineer    2002-08-14     B 0  John    92  Electrical engineer    1998-11-01     A isna()方法
  isna() 方法功能在于过滤出那些是空值的数据,首先我们将表格当中的某些数据设置成空值 df.loc[0, "profession"] = np.nan df[df.profession.isna()]
  output     name  note profession date_of_birth group 0  John    92        NaN    1998-11-01     A notna()方法
  notna() 方法上面的isna() 方法正好相反的功能在于过滤出那些不是空值的数据,代码如下 df[df.profession.notna()]
  output      name  note           profession date_of_birth group 1   Jane    94  Mechanical engineer    2002-08-14     B 2  Emily    87       Data scientist    1996-01-12     B 3   Lisa    82           Accountant    2002-10-24     A 4   Matt    90              Athlete    2004-04-05     C assign方法
  pandas 当中的assign 方法作用是直接向数据集当中来添加一列 df_1 = df.assign(score=np.random.randint(0,100,size=5)) df_1
  output      name  note           profession date_of_birth group  score 0   John    92  Electrical engineer    1998-11-01     A     19 1   Jane    94  Mechanical engineer    2002-08-14     B     84 2  Emily    87       Data scientist    1996-01-12     B     68 3   Lisa    82           Accountant    2002-10-24     A     70 4   Matt    90              Athlete    2004-04-05     C     39 explode方法
  explode() 方法直译的话,是爆炸的意思,我们经常会遇到这样的数据集   Name            Hobby 0   吕布  [打篮球, 玩游戏, 喝奶茶] 1   貂蝉       [敲代码, 看电影] 2   赵云        [听音乐, 健身]
  Hobby 列当中的每行数据都以列表的形式集中到了一起,而explode() 方法则是将这些集中到一起的数据拆开来,代码如下  Name Hobby 0   吕布   打篮球 0   吕布   玩游戏 0   吕布   喝奶茶 1   貂蝉   敲代码 1   貂蝉   看电影 2   赵云   听音乐 2   赵云    健身
  当然我们会展开来之后,数据会存在重复的情况,  df.explode("Hobby").drop_duplicates().reset_index(drop=True)
  output   Name Hobby 0   吕布   打篮球 1   吕布   玩游戏 2   吕布   喝奶茶 3   貂蝉   敲代码 4   貂蝉   看电影 5   赵云   听音乐 6   赵云    健身

陈佩斯孙女在家学防身术!五官清秀颜值高,手劲太大爸爸当场尖叫近日,陈佩斯的儿子陈大愚在自己的社交平台上晒出了一段他教自己的女儿防身术的视频。视频中陈大愚告诉女儿,女孩子一定要学一些防身小技巧,一边说着还一边和女儿示范应该怎样做才能防身。从视王芗斋意拳正轨(四)真正的传武,你连出手的机会都没有1898年,13岁的王芗斋就独闯保定府一镖局并将镖头抖出一丈之远3年后,16岁的王芗斋徒手击散十多人的持械匪徒后42岁到60岁之间,还击败世界轻量级拳击冠军日本柔术剑道名家数人等等CBA林书豪34岁为何不交女友?原因公布,有点假,球迷也不相信如今CBA正处于休息状态,很多球队也开始为新赛季而做准备,特别是新赛季的引援工作令人期待,大家都知道,在CBA联盟中外援对于球队的影响巨大,很可能会影响整个联赛的格局,目前广东男篮签表出炉!国乒16人参加资格赛,男双首轮内战,伊藤美诚遭遇劲敌2022年6月13日,乒乓球克罗地亚赛开打,国乒主力集体缺席,教练组派出17人参加单打比赛,除蒯曼直接晋级正赛,别的队员都需要从资格赛打起,日本队这次是全主力阵容,由张本智和伊藤美梅威瑟名人堂演讲,几度落泪,拳王阿里之女上前安慰,递上纸巾日前,5个级别世界拳王弗洛伊德梅威瑟,在入驻国际名人堂的演讲仪式上,无法抑制自己的情绪,几度哽咽落泪,用媒体的话说梅威瑟哭了两分多钟。梅威瑟在Instagram发表了入驻名人堂感言驳回对中芯国际的所有起诉,老美也开始正义了?驳回对中芯国际的所有起诉,老美也开始正义了?对于中芯国际大家也都不陌生了,作为国内最先进的芯片制造厂商,在两年前就能够量产14nm工艺了,并且在良品率和性能表现上,和台积电相比也丝9Ni钢被誉为钢板皇冠上的明珠,山钢如何拿下这颗明珠9Ni钢可长期耐受零下163摄氏度超低温环境,广泛应用于低温运输船液化天然气储罐等超低温压力容器的关键部位,生产技术工艺极具挑战性,唯有少数钢企具备批量生产能力。4月25日,山钢集喜报!中国夺3金4银,国乒成头号赢家,刘国梁会让刘诗雯退役吗万众瞩目的乒乓球青少年挑战赛捷克哈维若夫站落幕,中国乒乓球运动员夺得3金4银的好成绩,分别是曾蓓勋30战胜队友王晨策,夺得U19男单冠军,纵歌曼31战胜队友覃予萱,夺得U17女单冠二番战!张伟丽3。0版强势回归,一记转身KO乔安娜,对方直接趴地近日许多粉丝都在关注张伟丽的比赛,在北京时间6月12日的时候,张伟丽和对手乔安娜在新加坡的UFC赛场上进行了决斗,这是两人第2次交手,在第一次对战的时候两人都展现出了不俗的实力,双30!中国队爆冷掀翻世界第1,当家核心砍25分,世界排名连升6位昨夜今晨,中国男排爆出大冷,在不被看好的情况下,低调出战,跟主场出战的巴西男排过招。对方是世界第1,是最强大的男排队伍。中国男排第一局就打出85的领先局面,随后多个环节发挥稳健,尤CBA联盟中五位富二代球员,一旦打不好球,就要回去继承家业前言你们知道吗,其实CBA联盟中是很多球员家庭背景都是很不错的,这些球员的成功不单单是依靠个人饿天赋,其背后的资源也能够让其篮球生涯发展更上一层楼,今天我们就盘点一下联盟中较为有代
12年来最差开局!萨利踢巴萨必须要提升三个档位德甲联赛第六轮,拜仁慕尼黑在主场22艰难战平斯图加特,本场比赛,拜仁慕尼黑全队表现低迷,和实力并不强大的斯图加特打的有来有回,甚至在自己的主场一度被对手逼迫的非常狼狈。本轮过后,拜英超主帅年薪榜瓜帅第1,波特年薪翻5倍排第4,拉拉纳第12英超主帅年薪榜1。瓜迪奥拉(曼城)1900万镑2。克洛普(利物浦)1600万镑3。孔蒂(热刺)1500万镑4。波特(切尔西)1000万镑4。罗杰斯(莱斯特城)1000万镑6。滕哈赫跑神梁晶31岁倒在白银越野赛中,4个月后,2岁女儿代为领奖2014年10月,在济南12小时超马比赛中,出现了一匹黑马,他跑出了惊人的149。5公里,打破了全国纪录。这匹黑马就是梁晶,出生于安徽农村,当时他才24岁。2017年,杭州举办的2快男傅松口腔癌病逝,临终前劝诫远离槟榔,女儿最后留言令人泪目9月10日,适逢农历八月十五月圆人团圆的中秋佳节,阖家赏月团聚的日子但对于歌手傅松来说,却成为一生的遗憾,与妻女至此阴阳两隔,生死永别。事后,经好友兼癌友的发文证实,傅松抗癌六年终疑似李易峰前女友发文!称男方两次肇事还逼迫分手,消息真假难辨饿了吗?戳右边关注我们,每天给您送上最新出炉的娱乐硬核大餐!9月11日,李易峰被曝丑闻后,网上关于他的爆料越来越多,也令吃瓜群众感到无比震惊。其中,一位网红(网络昵称为郭子瑜)发布父母不愿承认的真相兄弟姐妹不和的家庭,从老二出生时就埋雷了文文儿如果家里有条件,很多父母都想生二胎,尤其第一胎是女儿的,二胎都想拼个儿子,凑成儿女双全。就算没有儿女双全,两个孩子成长路上有人作伴,等父母百年后,孩子在世界上还有个血缘亲人,勇士又一补强!4队4消息!热火看好两新秀,太阳有意续约134悍将尽管2022篮球名人堂已经落下帷幕,但各支球队之间在休赛期当中的工作,却在有条不紊地进行当中。虽然从目前的情况来看,自由市场和交易市场的热度逐渐下滑,但各支球队的风吹草动,依旧不乏马卡列后本泽马时代皇马锋线两大目标哈兰德恩德里克直播吧9月11日讯本泽马已经34岁了,在错失姆巴佩后,皇马急需在锋线引进一名强将接班法国人。马卡报表示,有两名球员是潜在目标,一个是哈兰德,另一个是巴西新星恩德里克。哈兰德在今夏已5个詹姆斯对位5个乔丹打全场,你觉得哪一边的赢面更大?乔丹和詹姆斯,谁是NBA历史第一人,这个都没什么问题,不要厚古薄今,两人都足够伟大。他们都是属于天赋异禀,而且都是全能战士,没有巅峰期交手,确实是一大遗憾。那我们就按照两人特质来分扫地出门!4000万攻击手将离开皇马!有望签约6000万射手对于皇马来说,球队在本赛季的表现完全达到了预期。作为联赛的卫冕冠军,弗洛伦蒂诺肯定希望皇马能够将联赛冠军奖杯继续留在伯纳乌球场。不过与上赛季有所不同的是,由于巴萨在整体实力上有了非达拉斯独行侠队全队员数据信息JAVALEMCGEE(贾维尔麦基)00号中锋前锋场均得分9。2场均篮板6。7场均助攻0。6球员贡献15。2身高2。13m体重122kg国籍美国毕业院校内华达大学雷诺分校年龄34岁