将数据框的一列与另一列匹配,拉入其他列,组合成大数据集

Posted

技术标签:

【中文标题】将数据框的一列与另一列匹配,拉入其他列,组合成大数据集【英文标题】:Match one column of data frame to another, pull in other columns, combine into large dataset 【发布时间】:2017-07-20 21:15:45 【问题描述】:

我在 2 列数字向量(在 R 中)中有一个商店 ID 及其邮政编码列表。我正在使用“邮政编码”包 (https://cran.rproject.org/web/packages/zipcode/zipcode.pdf) 并可以访问这些邮政编码的经度/纬度坐标。 zipcode 包有一个数据框,其中包含所有邮政编码的每个邮政编码、城市、州以及经度和纬度(作为一个大数据框)。

我正在寻找我的邮政编码的经度和纬度坐标,并将它们添加为第 3 列和第 4 列(即商店 ID、邮政编码、经度、纬度)

有什么想法吗? 谢谢!

编辑:我已经尝试了合并功能(即)total

【问题讨论】:

【参考方案1】:

作为by 参数传递的列名必须用引号引起来。在此示例中,合并中不需要 by 参数,if 邮政编码是两个数据框中唯一的公共列。

示例数据集:

#cleanData
d1<-tibble::tribble(~z,~id,131,1,114,2,155,5)

#zipcode
d2<-
tibble::tribble(~z,~x,~y,131,2,5,166,2,6,162,6,5,177,7,1,114,2,1,155,5,9)

result <- merge(d1,d2)

给予

       z id x y
    1 114  2 2 1
    2 131  1 2 5
    3 155  5 5 9

您可以通过简单地使用 dplyr::select() 从结果数据框中删除任何不必要的列。假设您不需要列 y(例如,可能是州名)

result <- dplyr::select(result, z, id, x)

【讨论】:

【参考方案2】:

最终使用了这个:How to join (merge) data frames (inner, outer, left, right)?

基本上我使用了 Left Outer 函数,因为我想将所有邮政编码保留在我的商店数据库中。我相信上面的答案会消除在第二个邮政编码列表中找不到的邮政编码。

【讨论】:

以上是关于将数据框的一列与另一列匹配,拉入其他列,组合成大数据集的主要内容,如果未能解决你的问题,请参考以下文章

如何将一个熊猫数据框的一列与另一个数据框的每一列相加?

Excel:VLOOKUP 将一列与另一张表匹配并连接数据

将一列与另一数据框列匹配并粘贴第二个数据中的值 - Python

显示一列与另一列相比的缺失值

Pandas Multiindex Groupby 聚合列与另一列的值

将一列中的文本与另一列匹配(vlookup + like)