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

炸裂,pandas实现列转行的几个实用技巧

  还是在2017年的时候,分享过这个主题:Pandas中如何将一列中的文本拆分为多行?
  由于当时pandas没有直接的方法来处理这种情形,因此当时使用的方法较为周折些。
  在 Pandas 版本 0.25版本之后,pandas 提供了 explode方法来处理这种数据情况。
  因此,今天来介绍下 explode方法的使用,同时也放上以前的处理方法,大家可以对比下。
  三种方法:
  Method 1 (explode)
  Method 2
  Method 3
  01数据背景
  在数据处理过程中,经常会遇到以下类型的数据:
  在同一列中,本该分别填入多行中的数据,被填在一行里了,然而在分析的时候,需要拆分成为多行。
  在上图中,列名为 "Country" ,index 为 4 和 5 的单元格内,值为 UK/Australia和UK/Netherland。
  今天,我们来介绍将含有多值的内容分拆成多行的几种方法。加载数据如下:import pandas as pd
  df = pd.DataFrame({"Country":["China","US","Japan","EU","UK/Australia", "UK/Netherland"],
  "Number":[100, 150, 120, 90, 30, 2],
  "Value": [1, 2, 3, 4, 5, 6],
  "label": list("abcdef")})
  df
  Out[2]:
  Country Number Value label
  0 China 100 1 a
  1 US 150 2 b
  2 Japan 120 3 c
  3 EU 90 4 d
  4 UK/Australia 30 5 e
  5 UK/Netherland 2 6 f
  02Method-1
  Method-1 主要是使用 pandas 的 explode方法来处理。
  根据 pandas 官方文档的介绍,explode方法主要可以列表类似的情况拆分为多行。
  列表类似(list-like),指的是列表、元组、Series 和 numpy 的 ndarray 等类型。
  需要注意的是,文字类型的文本类型(str) 是不可以直接用该方法进行处理的。
  而咱们上面的数据,比如 UK/Netherland,则不是 list-like 的数据。
  因此,在使用 explode方法之前,可以先使用str.split方法将文本转换为列表,如下:df["Country"] = df["Country"].str.split("/")
  df
  结果如下:
  现在, Country已经是列表类似的情况了,下一步可以使用explode方法来处理,如下:df.explode("Country")
  结果如下:
  03Method-2
  在早期的 Pandas 版本中,咱们需要分多个步骤来处理这种情况,如下:
  将含有多值的列进行拆分,然后通过stack方法进行变换,并通过index的设置来完成
  用drop方法从DataFrame中删除含有多值的列
  然后用join方法来合并df.drop("Country", axis=1).join(df["Country"].str.split("/", expand=True).stack.reset_index(level=1, drop=True).rename("Country"))
  Out[3]:
  Number Value label Country
  0 100 1 a China
  1 150 2 b US
  2 120 3 c Japan
  3 90 4 d EU
  4 30 5 e UK
  4 30 5 e Australia
  5 2 6 f UK
  5 2 6 f Netherland
  过程分步介绍df["Country"].str.split("/", expand=True).stack
  Out[4]:
  0 0 China
  1 0 US
  2 0 Japan
  3 0 EU
  4 0 UK
  1 Australia
  5 0 UK
  1 Netherland
  dtype: object
  df["Country"].str.split("/", expand=True).stack.reset_index(level=1, drop=True)
  Out[5]:
  0 China
  1 US
  2 Japan
  3 EU
  4 UK
  4 Australia
  5 UK
  5 Netherland
  dtype: object
  df["Country"].str.split("/", expand=True).stack.reset_index(level=1, drop=True).rename("Country")
  Out[6]:
  0 China
  1 US
  2 Japan
  3 EU
  4 UK
  4 Australia
  5 UK
  5 Netherland
  Name: Country, dtype: object
  df.drop("Country", axis=1)
  Out[7]:
  Number Value label
  0 100 1 a
  1 150 2 b
  2 120 3 c
  3 90 4 d
  4 30 5 e
  5 2 6 f
  04Method-3
  该方法的思路跟Method-2基本是一样的,只是在具体的细节方面有些差异。代码如下:
  df["Country"].str.split("/", expand=True).stack.reset_index(level=0).set_index("level_0").rename(columns={0:"Country"}).join(df.drop("Country", axis=1))
  Out[8]:
  Country Number Value label
  0 China 100 1 a
  1 US 150 2 b
  2 Japan 120 3 c
  3 EU 90 4 d
  4 UK 30 5 e
  4 Australia 30 5 e
  5 UK 2 6 f
  5 Netherland 2 6 f
  过程分步介绍如下:df["Country"].str.split("/", expand=True).stack.reset_index(level=0)
  Out[9]:
  level_0 0
  0 0 China
  0 1 US
  0 2 Japan
  0 3 EU
  0 4 UK
  1 4 Australia
  0 5 UK
  1 5 Netherland
  df["Country"].str.split("/", expand=True).stack.reset_index(level=0).set_index("level_0")
  Out[10]:
  0
  level_0   0 China   1 US   2 Japan   3 EU   4 UK   4 Australia   5 UK   5 Netherland   df["Country"].str.split("/", expand=True).stack.reset_index(level=0).set_index("level_0").rename(columns={0:"Country"})   Out[11]:   Country   level_0   0 China   1 US   2 Japan   3 EU   4 UK   4 Australia   5 UK   5 Netherland   df.drop("Country", axis=1)   Out[12]:   Number Value label   0 100 1 a   1 150 2 b   2 120 3 c   3 90 4 d   4 30 5 e   5 2 6 f   05小结   在 pandas 的 explode方法出现以后,遇到类似的情形,建议优先考虑该方法。   explode方法是将 list-like 的数据拆分为多行,还有时候,咱们是需要将这些数据拆分为多列的。

易经与量子力学量子力学中有测不准原理即不确定性原理,是说在量子范畴,你不能确知一个粒子的所有状态,也即粒子的位置和速度不能够同时测得。测不准原理不是实验总结,不是假说,而是基于严谨的数理方程的计直径5。2亿光年,囊括10万星系,拉尼亚凯亚超星系团有多可怕?天文学家告诉我们,整个地球天区只有7000颗左右的星星,能被人类用肉眼直接看到,这其中有太阳系内的木星和土星等行星,但绝大部分星星都来自太阳系之外,银河系之内,和太阳一样都属于恒星自然探索之科学启示备忘录反物质大爆炸有一个细节很值得玩味一下,这就是反物质。1928年,英国物理学家保罗狄拉克理论预言了正电子的存在,由此科学家们开始了反物质的研究和寻找。有物理学家预言,大爆炸初期,正反物质应科学家说,为了避免极端灾难,大多数化石燃料应该留在地下今年夏天,成千上万的人因洪水野火和飓风而流离失所,研究人员警告说,大多数未开发的化石燃料必须留在地下,以避免出现更极端的天气。根据发表在自然杂志上的一项研究,化石燃料生产商应避免到每日科普2000多年前,我们如何给地球量腰围?在没有现代化手段的年代,人类什么时候第一次比较准确地获得地球周长的呢?你的脑子应该已经开始启动了古代人测地球的周长,这是个技术问题,这个技术莫不是捡到了阿拉丁神灯?开玩笑的绕地球一航天技术商业化是人类迈向星辰大海的关键当人类望向繁星点点,神秘而深邃的夜空,不免陷入沉思这浩瀚的宇宙,我们何时才能自由遨翔。1609年,意大利的科学家伽利略发明了历史上第一台太空望远镜,人类第一次窥探到地球以外的世界。光量子的数量和频率的关系普朗克能量公式Ehf,光线的能量等于普朗克常数乘以光线的频率。为什么光线的频率越高,光线的能量越大呢?因为虽然光的速度都是相同的,每秒钟299792458米,但是波长不同的光线一秒国际团队汇集来自多方观测数据旨在解开木星能源危机谜团据外媒报道,木星是距离太阳第五近的行星。根据接收到的阳光量,这个星球上层大气的平均温度应该是零下73摄氏度左右。然而,科学家获得的测量值飙升至约426摄氏度。50年来,这种额外热量是要切入绕月轨道,还是要飞往金星?嫦娥5号轨道器在飞近月球中国嫦娥5号月球探测器让国人感到无比自豪,没人不竖起大拇指,就连登陆过月球的美国也对它称赞不已,尤其是美国NASA,一直紧盯嫦娥五号月球取样全过程,看着嫦娥5号成功带回月球样品,再核聚变供无尽能源更进一步InterestingEngineering99我们离从核聚变获得无穷尽能源又进了一步由比尔盖茨资助的CommonwealthFusionSystems(CFS)和麻省理工的Pla7天内两颗小行星,以这些高校命名9月10日,是南京师范大学119岁生日。这一天,一颗处于火星和木星轨道之间的小行星有了名字南师大星。据扬子晚报报道,2009年3月25日,南师大星由紫金山天文台科学家在盱眙天文观测
美国凯迪克金奖作品60册绘本音频!免费下载资源简介什么是凯迪克大奖?凯迪克大奖是美国最具权威的绘本奖,是绘本界的奥斯卡奖,而该奖之所以能够脱颖而出,获得一致推崇,主要在于其评选标准的周延与创新,着重作品的艺术价值特殊创意,分享史上最棒的自然科普启蒙绘本118册资源介绍HarperCollins所出版的LetsReadAndFindOutScience科普系列绘本118本(pdf音频),是由美国Hayden天文馆馆长Dr。F。M。Bran分享英文动画消防员山姆(4季32集)英文版消防员山姆(又名小小救生队)是一部连续16年在英国BBC及S4C频道播出的木偶动画片,一共32集,英文原版发音,英文字幕。如果你家熊孩子也是消防迷,那么不妨一起来吧,学习消防暖心蠢萌系!大小都喜欢的英文漫画集(一)Wannaplay?想玩吗?No,thanks。Idonthavethumbs。不,谢了,我没有大拇指Whatswiththefloaty?救生圈是干嘛用的?Icantswim。我玩转上海迪士尼的英文攻略!迪斯尼乐园是世界上最具知名度和人气的主题公园。在全世界共有7个度假区。分别是DisneylandPark迪士尼主题公园(位于加州Anaheim市)WaltDisneyWorldRe资源分享初学自然拼读最值得推荐的的60套绘本!Learnmoreabout今天给大家分享的是初学自然拼读最值得推荐的60绘本EarlyreadingPhonics!这套共分为三个部分,适合不同水平的孩子阅读,建议从sectio分享英国BBC启蒙英语动画玛泽的故事pdf电子书玛泽的故事,BigMuzzy是BBC制作的启蒙英语学习类动画,所以,语速很慢,比粉红猪小妹和蓝色小考拉都慢,而且,因为是学习类的动画,所以从内容设置方面,会重点围绕常见词汇日常用语分享排练剧本学英语50部英文高清动画MP3剧本看英文动画片,轻松学习英语看动画片学英语,非常轻松的学习方式,但却有非常重要的意义和神奇的效果。用来学习欣赏收藏最好的选择。这50部高质量的动画片是我们从近300部电影中选出的最合英国儿童Icancook让孩子爱上厨房,爱上说英语想不想让孩子做一道他拿手的菜肴?想不想和孩子一起享受做饭带给孩子的乐趣?这套ICANCOOK可以有效帮助孩子提高动手能力培养麻麻和孩子之间的感情是最实用最看的见效果的家庭教育资源哦我们只是想让记单词这件事,变得更有趣一些美籍日裔设计师Toshie和西班牙设计师Enrique将5004个单词重新设计,把单词的含义融入单词中,看见单词,就了解了它们的含义。语言学家的研究发现,母语使用者在说话的时候,大暖心蠢萌系!大人孩子都喜欢的英文漫画集(二)Firstonehomewins。先到家的胜利。Deal。成交!Dammit。该死的Dontworry,dude。Itllgrowback。别担心,兄弟。它会长回来的。Mom!Pu