我有两个具有经度和纬度值的数据帧,我想从数据帧#2中提取值(例如数据帧#2的第三列DF2$C
),这些值与数据帧1的列匹配...例如,数据帧1有两列(lon
、lat
),数据帧2有三列(lon
、lat
和一些值“c”
)...我想在数据帧1中添加第三列,其中DF2$C
的值对应于两个数据帧中两列完全匹配的值,类似于DF1$lon==DF2$lon
和DF1$lat==DF2$lat
...在lat
、lon
不匹配的对中,我希望添加na
,以便第三列(我要添加到数据。帧1)的长度为=nrow(df1)
。我尝试了merge函数,但在将DF1
的两列与DF2
的列进行匹配时遇到了困难。
您可以尝试data.table
library(data.table)
setDT(df1)
setkey(setDT(df2), lat, lon)
df2[df1]
# lat lon C
#1: 58 1 NA
#2: 52 10 NA
#3: 54 7 -0.9094088
#4: 60 2 NA
#5: 50 3 1.4541841
#6: 56 9 -1.7771135
#7: 59 5 NA
#8: 55 8 NA
#9: 53 4 NA
#10: 57 6 NA
df1 <- structure(list(lat = c(58L, 52L, 54L, 60L, 50L, 56L, 59L, 55L,
53L, 57L), lon = c(1L, 10L, 7L, 2L, 3L, 9L, 5L, 8L, 4L, 6L)), .Names = c("lat",
"lon"), row.names = c(NA, -10L), class = "data.frame")
df2 <- structure(list(lat = c(51L, 55L, 50L, 58L, 56L, 57L, 60L, 54L,
52L, 54L), lon = c(13L, 10L, 3L, 6L, 9L, 8L, 9L, 16L, 4L, 7L),
C = c(1.48642005012902, 1.53314455225747, 1.45418413640182,
-0.874122129771392, -1.77711353745745, 0.128866710402714,
-2.41118134931725, -1.78305563078752, -0.0173287724390305,
-0.909408846416724)), .Names = c("lat", "lon", "C"), row.names = c(NA,
-10L), class = "data.frame")
我有两个不同长度的数据帧。我想用CAP*货币和Go*货币与df_cur的乘法来改变数据帧df中的列。这应该在国家和年份必须分别对两个数据家族相同的条件下完成。更具体地说, #df# #df_cur# 所以,我想像这样变换df: #df# 我回顾了许多将两个数据帧大小不同的列相乘得到的答案,但没有任何结果。 我的代码示例: 非常感谢您的宝贵时间!
基本上,它应该在步骤中找到指标为43且步骤=1的行,然后将该值放在新列中,在这种情况下,它将是“Gross value Added”。任何帮助都将非常感谢!
这个问题和这个问题类似:R:两个/多个具有相同变量(列名)的数据帧的Sum列式值,并且以Date列作为引用,但是我的DF有不同的列数、列名,并且没有一个特定的引用列。 我试过合并、加入、通过...等
我有两个不同的DataFrames,我想合并与和列。我看到有一些线程,但我找不到我的问题的解决方案。我也读了这份文件,并尝试了不同的组合,但是,不工作得很好。 我的两个不同数据帧的示例, 正如您在两个数据帧中看到的,以开始,我想加入,这基本上是匹配的日期和时间。到目前为止,我使用前面的线程和上面提到的文档尝试了许多不同的组合。例如,, 这是右DataFrame的值。我知道,我不必同时使用和列,但是
我肯定错过了一些简单的东西。尝试合并熊猫中的两个数据帧,它们的列名基本相同,但右边的数据帧有一些左边没有的列,反之亦然。 我已尝试使用外部联接进行联接: 但这会产生: 我还指定了一个要连接的列(例如,on="id"),但这会重复所有列,除了"id",如attr_1_x、attr_1_y,这并不理想。我还传递了整个列列表(有很多)到on: 其产生: 我错过了什么?我想得到一个附加了所有行的df,并且
df1有每月时间索引,df2有季度时间索引。df1和df2有不同的行数和列数,我想:(1)并排连接它们并保持它们的索引。(2)输出到excel文件。 我尝试过pd.concat,但是这种方法连接基于我不想要的数据帧索引之一的数据帧 excel中的预期结果: