
今天这篇跟大家介绍R语言与Python数据处理中的第二个小知识点——数据合并与追加。
主要内容:
针对数据合并与追加,R与Python中都有对应的函数可以快速完成需求,根据合并与追加的使用场景,这里我将本文内容分成三部分:
- 数据合并(简单合并,无需匹配)
 - 数据合并(匹配合并)
 - 数据追加
 
数据合并(简单合并,无需匹配)
针对简单合并而言,在R语言中主要通过以下两个函数来实现:
- cbind()
 - dplyr::bind_cols()1234567891011121314151617df1 <- data.frame(A=c('A0', 'A1', 'A2', 'A3'),B= c('B0', 'B1', 'B2', 'B3'),C= c('C0', 'C1', 'C2', 'C3'),D=c('D0', 'D1', 'D2', 'D3'))df2 <- data.frame(E=c('A4', 'A5', 'A6', 'A7'),F= c('B4', 'B5', 'B6', 'B7'),G=c('C4', 'C5', 'C6', 'C7'),H= c('D4', 'D5', 'D6', 'D7'))df3 <-data.frame(I=c('A8', 'A9', 'A10', 'A11'),J= c('B8', 'B9', 'B10', 'B11'),K=c('C8', 'C9', 'C10', 'C11'),L=c('D8', 'D9', 'D10', 'D11'))df1;df2;df3mydata1<-cbind(df1,df2,df3);mydata1mydata2<-dplyr::bind_cols(df1,df2,df3);mydata1
 

在Python中,简单的合并可以通过Pandas中的concat函数来实现的。
  | 
  | 

横向合并:(需匹配)
在R语言中,这种操作有很多可选方案,如基础函数merge、plyr包中的join函数以及dplyr包中的left/right/inter/full_join等函数。
- merge
 - plyr::join
 - dplyr::left/right/inter/full_join
 
这里为了节省时间,只介绍第一种基础函数,欲了解详情,可以查看这篇历史文章:
  | 
  | 

  | 
  | 


在Python中,这一操作也可以通过函数Pandas库中的cancat函数或者merge函数来完成。
Pandas-merge
  | 
  | 

  | 
  | 


数据追加:
数据追加通常只需保证数据及的宽度一致且列字段名称一致,相对来说比较简单。在R语言和Python中,也很好实现。
在R语言中,可视化朱数据追加的函数有:
- rbind()
 - dplyr::bind_rows()
 
  | 
  | 

python中则可以很容易的通过数据框本身的append函数来实现简单的数据追加:
  | 
  | 

如果是使用canat函数也可以非常轻松的完成数据追加:

本文汇总:
| 工具 | 数据合并 (简单合并)  | 
数据合并 (匹配和并)  | 
数据追加: | 
|---|---|---|---|
| R: | cbind dplyr::bind_cols  | 
merge plyr::join dplyr::left/right/inter/full_join  | 
rbindd plyr::bind_rows  | 
| Python: | Pandas-cancat | merge cancat  | 
append cancat  | 
以上仅是个人常用的几种,方法肯定不至于此,欢迎大家补充!
联系方式:
wechat:ljty1991
Mail:578708965@qq.com
个人公众号:数据小魔方(datamofang)
qq交流群:[魔方学院]298236508
个人简介:
杜雨
财经专业研究僧;
伪数据可视化达人;
文科背景的编程小白;
喜欢研究商务图表与地理信息数据可视化,爱倒腾PowerBI、SAP DashBoard、Tableau、R ggplot2、Think-cell chart等诸如此类的数据可视化软件,创建并运营微信公众号“数据小魔方”。
Mail:578708965@qq.com 
备注信息:
本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。