如何将多个唯一元素附加到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中的同一组列?的主要内容,如果未能解决你的问题,请参考以下文章

将 GestureRecogniser 附加到多个图像视图

将浮点数组写入和附加到 C++ 中 hdf5 文件中的唯一数据集

从 pandas 数据框中的元组列中删除元素

如何在 Python 中使用 Pandas 数据结构附加多个 CSV 文件

将列表元素附加到python中的列表列表

在 teradata 14 中收集统计信息 - 不允许在同一组列上具有不同列排序的多个统计信息