如何从其他2个数据框中填充数据框

时间:2019-06-20 18:19:31

标签: python r

我正在尝试以特定方式组合两个数据帧并创建一个新的数据帧,并避免for循环。
假设一个数据框1如

DF1  
    chan   
1    A01  
2    A02  
3    A03  
4    A04  

数据框2为:

DF2  
     Len  
1     10  
2     11  
3     12

我需要创建看起来像第三个数据框(不使用for循环):

DF3  
     chan  Len  
1     A01   10  
2     A01   11  
3     A01   12  
1     A02   10  
2     A02   11  
3     A02   12

用R和/或python理解答案。 提前非常感谢!

2 个答案:

答案 0 :(得分:0)

阿德里安,尝试

df3 <- expand.grid(df1$chan, df2$Len)

答案 1 :(得分:0)

我认为您想要做的是交叉联接。有几个软件包可以帮助您完成此任务,例如基R的merge函数,来自dplyr软件包的联接函数等。我喜欢使用crossing软件包中的tidyr函数。

DF1 <- tibble(Chan = c("A01","A02","A03","A04"))
DF2 <- tibble(Len = 10:12)

tidyr::crossing(A, B)

# A tibble: 12 x 2
   A         B
   <chr> <int>
 1 A01      10
 2 A01      11
 3 A01      12
 4 A02      10
 5 A02      11
 6 A02      12
 7 A03      10
 8 A03      11
 9 A03      12
10 A04      10
11 A04      11
12 A04      12