我正在尝试从数据框中的一列中获取唯一的标识符/键,并将其附加到另一数据框中的两列中的SAME元素集中。这两个数据帧如下:
df1 df2
Geogkey Brand Week date Impressions
TMZ43434 x 6/16/18 6/14/18 798798
KRO36783 y 6/16/18 6/21/18 562314
.... 6/28/18 462534
n
在df2中,还有一些日期可能会持续到八月,但为了简洁起见,我没有将它们包括在内。我想从df1中获取每个唯一的Geogkey,并将它们附加到df2,因此特定日期和展示次数的每一行都与geogkey相匹配。 df2中的日期和印象集将连续向下重复数据框,每个组合对应一个唯一的geogkey-每次也会重复。所以最终的数据帧看起来像这样:
Geogkey date Impressions
TMZ43434 6/14/18 798798
TMZ43434 6/21/18 562314
TMZ43434 6/28/18 462534
KRO36783 6/14/18 798798
KRO36783 6/21/18 562314
KRO36783 6/28/18 462534
对于每个地理键,此操作将连续重复。到目前为止,我的代码是:
empty <- data.frame(df2$date, df2$impressions)
#creates a new data frame with unique geogkeys
geogname <- unique(data.frame(df1$GEOGKEY))
#create some function that will index each unique geogkey and make a new
column for df2 with that name (e.g. df2$geogkey <- some function)
new_df <- rbind(empty, df2)
#this should theoretically append all the geogkeys to the dates and
impressions
我是否需要为此编写一些for循环?我被卡住了,不确定如何进行。我也试图在熊猫中做到这一点。
答案 0 :(得分:0)
如果我错了,请纠正我,但是看来您正在尝试使用“日期”和“印象”的每个组合重复每个键。这样的事情会起作用。
df <- data.frame()
for(i in unique(df1$GEOKEY){
for(j in 1:nrow(df2)){
df <- rbind(df,
data.frame('key' = i, 'date' = df2[j,1], 'impressions' = df2[j,2]))
}
}
对于大数据帧,这是一个麻烦的解决方案。我还假设df2
中的行是唯一的。