如何使用 DF / 列表索引将数据框列表连接到一个数据框?

纺锤体
library(dplyr); library(tibble)

这是我的示例数据。listOfDFs我想加入单个数据帧 ( )的小数据帧列表( points)。

listOfDfs有 5 个小数据框,总共 7 行,points是一个有 7 行的数据框:

points <- structure(list(EVENT_ID_CNTY = c("LBY1243", "LBY3389", "LBY3393", 
                    "LBY3506", "LBY3822"), year = c(2013, 2015, 2015, 2015, 2015), 
                    COUNTRY = c("Libya", "Libya", "Libya", "Libya", "Libya")), .Names = c("EVENT_ID_CNTY", 
                    "year", "COUNTRY"), row.names = c(NA, -5L), class = c("tbl_df", 
                    "tbl", "data.frame"))

listOfDFs <- structure(list(`1` = structure(list(CELL_ID = c(165267, 164547
), gwno = c(620L, 620L), POP = c(751.0737, 754.5745), prio_country = c("Libya", 
"Libya")), .Names = c("CELL_ID", "gwno", "POP", "prio_country"
), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
)), `2` = structure(list(CELL_ID = 172475, gwno = 620L, POP = 11676, 
prio_country = "Libya"), .Names = c("CELL_ID", "gwno", "POP", 
"prio_country"), row.names = c(NA, -1L), class = c("tbl_df", 
"tbl", "data.frame")), `3` = structure(list(CELL_ID = 172475, 
gwno = 620L, POP = 11676, prio_country = "Libya"), .Names = c("CELL_ID", 
"gwno", "POP", "prio_country"), row.names = c(NA, -1L), class = c("tbl_df", 
"tbl", "data.frame")), `4` = structure(list(CELL_ID = 172475, 
gwno = 620L, POP = 11676, prio_country = "Libya"), .Names = c("CELL_ID", 
"gwno", "POP", "prio_country"), row.names = c(NA, -1L), class = c("tbl_df", 
"tbl", "data.frame")), `5` = structure(list(CELL_ID = c(165267, 
164547), gwno = c(620L, 620L), POP = c(751.0737, 754.5745), prio_country = c("Libya", 
"Libya")), .Names = c("CELL_ID", "gwno", "POP", "prio_country"
), row.names = c(NA, -2L), class = c("tbl_df", "tbl", "data.frame"
))), .Names = c("1", "2", "3", "4", "5"))

这些数据如下所示:

points
#> # A tibble: 5 x 3
#>   EVENT_ID_CNTY  year COUNTRY
#>   <chr>         <dbl> <chr>  
#> 1 LBY1243       2013. Libya  # Corresponds to the two items in listOfDFs[[1]]
#> 2 LBY3389       2015. Libya  # Corresponds to the one item in listOfDFs[[2]]
#> 3 LBY3393       2015. Libya  
#> 4 LBY3506       2015. Libya  
#> 5 LBY3822       2015. Libya


listOfDFs
#> $`1`
#> # A tibble: 2 x 4
#>   CELL_ID  gwno   POP prio_country
#>     <dbl> <int> <dbl> <chr>       
#> 1 165267.   620  751. Libya       
#> 2 164547.   620  755. Libya       
#> 
#> $`2`
#> # A tibble: 1 x 4
#>   CELL_ID  gwno    POP prio_country
#>     <dbl> <int>  <dbl> <chr>       
#> 1 172475.   620 11676. Libya       
#> 
#> $`3`
#> # A tibble: 1 x 4
#>   CELL_ID  gwno    POP prio_country
#>     <dbl> <int>  <dbl> <chr>       
#> 1 172475.   620 11676. Libya       
#> 
#> $`4`
#> # A tibble: 1 x 4
#>   CELL_ID  gwno    POP prio_country
#>     <dbl> <int>  <dbl> <chr>       
#> 1 172475.   620 11676. Libya       
#> 
#> $`5`
#> # A tibble: 2 x 4
#>   CELL_ID  gwno   POP prio_country
#>     <dbl> <int> <dbl> <chr>       
#> 1 165267.   620  751. Libya       
#> 2 164547.   620  755. Libya

我如何加入这两个,使它们遵循以下模式?我是否必须找到一种方法将它们绑定到数据框的行索引上,还是有更优雅的方法?:

#>   EVENT_ID_CNTY  year COUNTRY  CELL_ID  gwno   POP prio_country
#>   <chr>         <dbl> <chr>     <dbl> <int> <dbl> <chr>  
#>   LBY1243       2013. Libya     165267.   620  751. Libya 
#>   LBY1243       2013. Libya     164547.   620  755. Libya 
#>   LBY3389       2015. Libya     172475.   620 11676. Libya
#>   LBY3393       2015. Libya     172475.   620 11676. Libya
#>   LBY3506       2015. Libya     172475.   620 11676. Libya
#>   LBY3822       2015. Libya     165267.   620  751. Libya 
#>   LBY3822       2015. Libya     164547.   620  755. Libya
.........
奥扬布
library(tidyr)
points %>% mutate(mm=listOfDFs) %>% unnest

# A tibble: 7 x 7
  EVENT_ID_CNTY  year COUNTRY CELL_ID  gwno    POP prio_country
  <chr>         <dbl> <chr>     <dbl> <int>  <dbl> <chr>       
1 LBY1243        2013 Libya    165267   620   751. Libya       
2 LBY1243        2013 Libya    164547   620   755. Libya       
3 LBY3389        2015 Libya    172475   620 11676  Libya       
4 LBY3393        2015 Libya    172475   620 11676  Libya       
5 LBY3506        2015 Libya    172475   620 11676  Libya       
6 LBY3822        2015 Libya    165267   620   751. Libya       
7 LBY3822        2015 Libya    164547   620   755. Libya  

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将数据框列表转换为一个数据框,在额外的列中使用 df 名称

使用熊猫将一个数据框与列表连接

如何将一个数据框列与一个列表中的多个数据框合并?

如何将两个列表转换为一个数据列表,将一个列表转换为一个数据框?

如何将一个数据框中的列表列与另一数据框中的字符串列连接在一起?

在一个df中使用名称创建另一个数据框的相同列副本

如何使用每个元组的第一个值作为键将六个元组列表连接到 Pandas 数据框中?

如何获取 27 个城市的列表/df 并为每个城市创建一个包含 151 个城市名称实例的数据框(总共 4077 行)

如何将一列从两个数据框连接到另一个数据框?pd.merge返回nan

如何将列表列表隐藏到数据框中并使列表的第一个元素作为索引

如何将一列从另一个数据框连接到特定列?

使用 df.merge 函数从列表创建数据框

如何使用另一个数据框的索引索引到一个数据框?

r-如何将多个列表列表组合到一个数据框中

如何将列表名称添加到df作为数据框的列

如何根据条件使用花括号将一个数据框与另一个数据框连接 {}

使用索引将一个数据框的值映射到另一数据框列

Spark(使用pyspark)使用一个数据框(结构化流)中的值查询静态数据框,并将第二个df中的行与第一个合并

如何将一个数据框列直接转换为以列值作为列索引的数据框?

如何将值从数据框添加到另一个数据框以获取正确的索引?

如何将列表列与熊猫中另一个数据框中的列匹配?

如何找到关于另一个df的数据框的补充?

使用条件将列表中的数据框处理为子集行,使用R处理另一个数据框

从两个数据框创建新的数据框。一个df包含列索引,另一个df包含值

使用引用这些列表变量的列表将一组列表变量组合到一个数据框中

使用与另一个数据框的匹配来重命名数据框列表中的列

如何合并列表并将其转换为一个数据框?

如何从另一个数据框更新多索引数据框?

如何基于另一个数据框过滤多索引数据框