开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:pandas 数据合并与整形 4】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15395
pandas 数据合并与整形 4
内容介绍:
一、Merging on index (在 index 上做归并)
二、Concatenating Along an Axis(沿着轴串联)
三、Combining Data with Overlap(用重叠来合并数据)
一、Merging on index (在 index 上做归并)
下面来学习在索引上进行归并、合并。前面讲合并都是用一个字段,一个列,最好是两个数据里中具有相同的列,但是列有可能是数字框中的索引,所以在这种情况下,可以用 left index=true 或者 right index=true 来指名要使用哪个索引来做合并的键(key)。接下来看下面的例子:
这里创建了一个数据框,数据框中有两列一个是 key,一个是 value,索引是默认的,这个数据框叫 left1。下面再看 right1 的数据框,
有一列就是group_val,然后它有索引 index=【‘a’,‘b’】,现在需要做两台数据的合并,也就是 left1和 right1 合并,然后使用left_on=‘key’,right index=true。那么左边是用其 key 字段,大家可以主要 key 中有 a、b、c 这样的参数;右边数据是用它的索引,使用 right index=true。
这样的两份数据合并,那么其默认为交集。那如果要指定其为并集的话,可以使用 outer join。大家可以看下面例子:
将 left1和 right1合并起来,然后左边数据用 key,右边使用索引(index),然后使用 Y 集,运行查看合并后的结果。
那么对于多层级索引的数据,如果要再合并会变得更复杂,所以后面多层级索引也就是层次索引,就是多索引 merge 代词,这个例子讲起来可能比较绕,所以下去也需要同学自己进行练习、体会。这里就不提多层级索引例子了。
二、Concatenating Along an Axis(沿着轴串联)
另外是沿着坐标轴的合并串联,主要是用 concatenating 函数,这是相对来说比较容易理解的,可以对照 Numpy 里的 concatenating 函数来作为对比,如果 Numpy 数组的合并已经熟悉的话,这个也就可以完成理解了。接下看例子:
这是创建三行四列,总计12个数的 Numpy 的数组,大家看看在 Numpy 里使用两个数组去合并。那么这两份数据都为 arr,是同样的数据,然后坐标轴引入了这个列去合并,大家看看合并后的结果。
在列上面可以看出前后共分为两组,在列上增加了元素的列数目,由本来的四列变成现在的八列,行未改变还是三行。所以注意 concatenating 函数,那么在 pandas 对象里有 series 和数值框,然后这些坐标轴都是标签化的,如果在坐标轴上要进行合并的情况下,在pandas里面主要就是 concat 函数,它能够做到与 Numpy 里的 concatenating 函数相似的功能,这里看看下面例子。
这是 s1的一个 series,它的数据是【0,1】所以 index = 【a,b】;s1为另外一个 series 其数据是【2,3,4】所以是 index=【c,d,e】,那么将三份系列 Series 进行创建,用 concat 把它合并起来。下面括号里给一段列表,把三个系列放在一起,然后再来看看整合后的结果:a,b,c,d,e,f,g,整合成这样的结果,如果没有指明具体按哪个坐标图,默认 axis = 0,就是按行增加新的行,从而得到一个新的 series,如果令 axis = 1,那就是按列。
下面来看一下按列然后进行数据的合并,因为原本没有列名,所以这里添加了默认的列名0,1,2,然后数据进行合并,要注意这样的问题。
后面还有 concat 的几个例子。也可以自己按照提供的资料去操作。
三、Combining Data with Overlap(用重叠来合并数据)
最后面是第三个大内容,这个就是用重叠来合并数据,主要就是用里面存在的一个方法:combine first,它会自动对齐,这里的内容大家也还可以按照操作,自己进行练习。
这是关于数据的合并,给大家讲到主要的一些合并的方法。基本上常规操作掌握了,但是里面还有一些细节,应该自主的进行查阅,再去加强合并的内容。如果之前练习不多,确实有的地方会绕,要多仔细观察,否则可能也很难判断。