如何将多个唯一元素附加到Python中的同一组列?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将多个唯一元素附加到Python中的同一组列?相关的知识,希望对你有一定的参考价值。

我试图从数据框中的一列中获取唯一标识符/键,并将其附加到另一个数据框中,并将其附加到两列中的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

直到8月份,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

对于每个geogkey,这将不断重复。我到目前为止的代码是:

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循环吗?我被困住了,不知道该怎么办。我也想在熊猫中做这件事。

答案

如果我错了,请纠正我,但看起来你试图用“日期”和“印象”的每个组合重复每一个键。像这样的东西会起作用。

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中的行是唯一的。

以上是关于如何将多个唯一元素附加到Python中的同一组列?的主要内容,如果未能解决你的问题,请参考以下文章