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

Python数据分析笔记8。2。3轴向连接

  「目录」
  数据规整:聚合、合并和重塑
  Data Wrangling: Join, Combine, and Reshape  8.1  => 层次化索引  8.2  => 合并数据集
  --------> 数据库风格的DataFrame合并
  --------> 索引上的合并
  -------->  轴向连接   8.3  => 重塑和轴向旋转
  轴向连接
  另一种数据合并运算也被称作连接(concatenation)、绑定(binding)或堆叠(stacking)。Numpy的concatenation函数可以用Numpy数组来做:  In [1]: import numpy as np  In [2]: import pandas as pd  In [3]: arr = np.arange(12).reshape((3, 4))  In [4]: arr Out[4]: array([[ 0,  1,  2,  3],        [ 4,  5,  6,  7],        [ 8,  9, 10, 11]])  In [5]: np.concatenate([arr, arr], axis=1) Out[5]: array([[ 0,  1,  2,  3,  0,  1,  2,  3],        [ 4,  5,  6,  7,  4,  5,  6,  7],        [ 8,  9, 10, 11,  8,  9, 10, 11]])
  假设有三个没有重叠索引的Series:  In [6]: s1 = pd.Series([0, 1], index=["a", "b"])  In [7]: s2 = pd.Series([2, 3, 4], index=["c", "d", "e"])  In [8]: s3 = pd.Series([5, 6], index=["f", "g"])
  对这些对象调用concat可以将值和索引粘合在一起:  In [9]: pd.concat([s1, s2, s3]) Out[9]: a    0 b    1 c    2 d    3 e    4 f    5 g    6 dtype: int64
  默认情况下,concat是在axis=0上工作的,最终产生一个新的Series。如果传入axis=1,则结果就会变成一个DataFrame(axis=1是列):  In [10]: pd.concat([s1, s2, s3], axis=1) Out[10]:      0    1    2 a  0.0  NaN  NaN b  1.0  NaN  NaN c  NaN  2.0  NaN d  NaN  3.0  NaN e  NaN  4.0  NaN f  NaN  NaN  5.0 g  NaN  NaN  6.0
  传入join="inner"可以得到他们的交集:  In [11]: s4 = pd.concat([s1, s3])  In [12]: s4 Out[12]: a    0 b    1 f    5 g    6 dtype: int64  In [13]: pd.concat([s1, s4], axis=1) Out[13]:      0  1 a  0.0  0 b  1.0  1 f  NaN  5 g  NaN  6  In [14]: pd.concat([s1,s4], axis=1, join="inner") Out[14]:    0  1 a  0  0 b  1  1
  现在我们可以看到因为传入了join="inner",f索引和g索引那两行消失了。
  我们还可以通过join_axes指定要使用的索引:  In [16]: pd.concat([s1, s4], axis=1, join_axes=[["a", "c", "b", "e"]]) Out[16]:      0    1 a  0.0  0.0 c  NaN  NaN b  1.0  1.0 e  NaN  NaN
  一个可能遇到的问题是,如果我们将s1,s1和s3拼接的时候,可能因为重复的索引导致无法区分结果。  In [35]: pd.concat([s1,s1,s3]) Out[35]: a    0 b    1 a    0 b    1 f    5 g    6 dtype: int64
  解决的办法是我们可以在连接轴上创建一个层次化索引。使用keys参数即可达到这个目的:  In [17]: result = pd.concat([s1, s1, s3], keys=["one", "two", "three"])  In [18]: result Out[18]: one    a    0        b    1 two    a    0        b    1 three  f    5        g    6 dtype: int64
  如果沿着axis=1对Series进行合并,则keys就会成为DataFrame的列名:  In [20]: pd.concat([s1, s2, s3], axis=1, keys=["one", "two", "three"]) Out[20]:    one  two  three a  0.0  NaN    NaN b  1.0  NaN    NaN c  NaN  2.0    NaN d  NaN  3.0    NaN e  NaN  4.0    NaN f  NaN  NaN    5.0 g  NaN  NaN    6.0
  同样的逻辑适用于DataFrame对象:  In [21]: df1 = pd.DataFrame(np.arange(6).reshape(3, 2), index=["a", "b", "c"], columns=["one", "two"])  In [22]: df2 = pd.DataFrame(5 + np.arange(4).reshape(2, 2), index=["a", "c"], columns=["three", "four"])  In [23]: df1 Out[23]:    one  two a    0    1 b    2    3 c    4    5  In [24]: df2 Out[24]:    three  four a      5     6 c      7     8  In [25]: pd.concat([df1, df2], axis=1, keys=["level1", "level2"]) Out[25]:   level1     level2      one two  three four a      0   1    5.0  6.0 b      2   3    NaN  NaN c      4   5    7.0  8.0
  如果传入的不是列表而是一个字典,则字典的键就会被当作keys选项的值:  In [28]: pd.concat({"level1":df1, "level2":df2}, axis=1) Out[28]:   level1     level2      one two  three four a      0   1    5.0  6.0 b      2   3    NaN  NaN c      4   5    7.0  8.0
  另外,我们还可以用names参数命名创建的轴级别:  In [29]: pd.concat([df1, df2], axis=1, keys=["level1", "level2"], names=["upper", "lower"]) Out[29]: upper level1     level2 lower    one two  three four a          0   1    5.0  6.0 b          2   3    NaN  NaN c          4   5    7.0  8.0
  本篇最后一个关于DataFrame的问题,若DataFrame的行索引不包含任何相关数据:  In [30]: df1 = pd.DataFrame(np.random.randn(3, 4), columns=["a", "b", "c", "d"])  In [31]: df2 = pd.DataFrame(np.random.randn(2, 3), columns=["b", "d", "a"])  In [32]: df1 Out[32]:           a         b         c         d 0 -0.402664 -0.861283  0.419665 -0.010507 1  0.244767 -1.023330 -0.509473  0.773439 2 -0.073538  0.966644  0.583360  0.593361  In [33]: df2 Out[33]:           b         d         a 0 -0.353377 -1.607486  0.207777 1  0.858092  0.795677  0.639189
  在这种情况下,我们可以传入ignore_index=True,结果就不会保留连接轴上的索引,而是产生一组新索引:  In [36]: pd.concat([df1, df2]) Out[36]:           a         b         c         d 0 -0.402664 -0.861283  0.419665 -0.010507 1  0.244767 -1.023330 -0.509473  0.773439 2 -0.073538  0.966644  0.583360  0.593361 0  0.207777 -0.353377       NaN -1.607486 1  0.639189  0.858092       NaN  0.795677  In [37]: pd.concat([df1, df2], ignore_index=True) Out[37]:           a         b         c         d 0 -0.402664 -0.861283  0.419665 -0.010507 1  0.244767 -1.023330 -0.509473  0.773439 2 -0.073538  0.966644  0.583360  0.593361 3  0.207777 -0.353377       NaN -1.607486 4  0.639189  0.858092       NaN  0.795677
  -END-

有多少人买了小米的东西停不下来,以至于让家里快成小米杂货铺了?值得吗?我算是一个资深米粉了,算不上很骨灰,但算是比较了解吧!当时还用着三星手机时就开始刷MIUI系统了,当时还没有小米手机!后来出了小米手机,观望过一段时间,没有入手,一直等到小米1S青资本都是逐利的,为啥互联网大厂还不进入红利大的智能制造业?很多小伙伴都在后台问,为啥现在互联网内卷已经形成各种极端事件,之前上头还出面全部摁过一次,但现在,还是在外卖,单车,支付,生鲜各种民生方面杀成红海,内卷得不要不要的。而制造业呢?就获央媒点赞后,京东加速40万员工转型,刘强东不会丢下一个兄弟如今我国的电商领域,已经形成了阿里京东和拼多多三足鼎立的局面。虽然三者都将发力点放在了线上购物的整体布局上,但相比另外两家对于互联网经济模式的专一,京东就显得很多情了。围绕着要不要怎么选?小米mix412512Gvs小米12pro8256G使用场景与需求日常使用,不打游戏,拍照要求不高,有时会看看文档,开开视频会议。1。外观mix4全陶瓷机身非常有质感,12pro磨砂玻璃不如civi的磨砂好,原野绿素皮还不错,但总体联想资不抵债,杨元庆怒斥司马南不懂财务计算机硕士杨元庆怒斥经济系毕业的司马南不懂财务。作为家里蹲大学毕业幼儿园博硕连读的我简直就是一场撕逼大战作为头条网友口中的联想对外发言人,我还是尽量保持客观。我就是一线销售出身,一跟我学安装最纯净原版windows10之系统启动盘制作跟我学安装最纯净原版windows10之系统启动盘制作阅读过笔者从微软系统镜像下载站或httpsnext。itellyou。cn下载完毕纯净原版Windows10系统镜像的朋友,现ofo为何持续在挖坑?ofo其实早已经淡出了人们的视野,即使那些还被拖欠押金未收回的用户恐怕都不怎么关注它了。共享经济的率先开拓者几乎已经陷入了经营绝境,都不应该是困境了。ofo和摩拜的先后爆出问题,是今日头条吸引你的地方是什么?感谢邀请!这样的提问出现了很多不同的版本。我也回答了有关今日头条的很多提问。今日头条吸引着几亿人,几亿人拿着手机看今日头条。今日头条得到了无数网民认可!今日头条的魅力传播正能量的集MIUI13和国家反诈APP合作,网友急了!动了谁的蛋糕?据V2ex爆料,小米最新的MIUI13将和国家反诈中心合作,为用户带来全链路反诈,保障电信安全,小米成了第一个吃螃蟹的人,但是有大批网友急了!个人隐私怎么办!但是这个功能并不是真的无理打压!美商务部将12家中企纳入实体清单8家涉及量子计算应用财联社(上海,编辑史正丞)讯,当地时间周三,美国商务部工业与安全局(BIS)发布公告称,将位于中国日本巴基斯坦和新加坡的27个实体列入所谓实体清单(EntityList),其中有1优盘之父邓国顺靠优盘躺赚20年,年赚上亿,今成腾讯的房东没有任何经验可循,就像在黑屋子里摸索。当邓国顺接受采访者说出这句话时,他已经从黑屋子里走了出来。在1999年的夏天,邓国顺和另外一位技术大牛成晓华辞职回国,从新加坡飞到深圳罗湖,赌
iphoneSE2022年01月16日新消息iphoneSEiphoneSE2022年01月16日新消息苹果再秀精准刀法iPhoneSE3用上了iPhoneXR设计iPhonese3发布在即!全面屏iPhoneSE买么Red为什么用小米的几乎很少会买华为,而用华为的也几乎不会买小米呢最近小芳发现数码圈中存在着一个比较有趣的现象,那就是用过小米手机的小伙伴,即使要换机一般是会选择苹果或者是小米品牌的手机而不会去选择华为而用过华为手机的小伙伴,也是坚决不会去尝试购iPhone13持续畅销登顶国产手机如何抗衡?来源通信信息报社(记者陈锦锋)12不香十三香,没想到网友的一句神调侃竟成为了现实,iPhone13于去年10月11月连续两个月成为国内手机销量第一,带领苹果重回中国智能手机市场第一容得下丁磊为什么错了,讨论空间才能更广近日,全国政协委员网易CEO丁磊的关于统一智能电子设备充电器标准端口进一步减少电子垃圾助力碳中和的提案获得了工信部的正式书面答复。(1月15日红星新闻)丁磊关于统一智能电子设备充电机器人的祖宗唐门世家机器人的祖宗唐门世家唐门世家是个总称,从老祖宗开始儿子,女儿,孙子,孙女,外孙,外孙女,,无论传到那一代,都叫唐门世家。唐门世家,传说中专门研发机器人世家贵族,以专业能力业界第一传快递的问题会被时代的发展给解决文程颂最近又掀起一场关于快递是否送上楼,放快递柜是否经过用户同意的问题讨论的比较激烈。最终,国家邮政局发话,快递是否放快递柜,用户是否同意很重要。我记得有个人曾说过这样的话企业的发加密世界的超发,滥印,操纵,垄断,远远超过法币世界加密世界的梦想是替代滥发的法币系统,但实际上事与愿违。加密世界的滥发与操纵比传统的法币系统后果严重得多。美元体系的绝大部分信用创造来自于离岸美元系统的信用创造,在100万亿美元级别小米12对标iPhone?小屏旗舰之战谁能成为赢家近期小米公开表示将对标iPhone,其小米12旗舰机采用小屏设计,不少小屏旗舰机爱好者对小米的这一行为并不看好。同时iPhone13系列的各类操作,也同样让这部分用户不看好它,相反小米重拾性价比,12512G顶级机皇,骁龙888Plus仅3819元众所周知小米已经冲上高端市场,产品策略出现了比较大的变化,性价比这件事交给了红米去做,我们不难发现它越来越靠近线下用户,最新的小米12系列就可见一二,不过厂商是厂商的事,消费者是否夯实科技创新的根基来源人民网人民日报新年伊始,新修订的中华人民共和国科学技术进步法(以下简称科技进步法)正式实施。作为我国科技领域的基本法,科技进步法对保障促进科学技术健康发展推动科技创新的意义自不通用式量子计算机降世会直接开启世界末日传统计算机的运算是基于物理的,通用式量子计算机是基于量子的。人类大脑是基于量子的。如果让计算机学会使用量子运算,那通用式计算机的算力可以瞬间超过人类的大脑。通用式量子计算机的诞生会