【问题标题】:How to append multiple unique elements to the same set of columns in Python?如何将多个唯一元素附加到 Python 中的同一组列?
【发布时间】:2019-07-07 22:43:40
【问题描述】:

我正在尝试从数据框中的一列中获取唯一标识符/键,并将其附加到另一个数据框中,并添加到两列中相同的元素集。两个数据框如下:

         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 中还有几个日期直到 8 月,但为了简洁起见,我没有将它们包括在内。我想从 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 循环吗?我被卡住了,不知道如何继续。我也在尝试在 Pandas 中这样做。

【问题讨论】:

标签: python r pandas dataframe append


【解决方案1】:

如果我错了,请纠正我,但看起来您正在尝试使用“日期”和“印象”的每种组合重复每个键。这样的事情会奏效。

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

【讨论】:

  • 哎呀,我解释错了输出并在上面进行了编辑。不是每个组合,而是仅针对每个唯一行或日期和印象的组合重复每个键。为了清楚起见,我还添加了一个额外的行
  • 我认为可能是这样。您所要做的就是完全删除 k 循环并将 k 迭代器替换为 j
  • 如果您可以将问题标记为已接受,我们将不胜感激,它将关闭帖子。
  • @manutd93:你熟悉这里的问题接受过程吗?虽然这不是强制性的,但这是一种感谢帮助过你的人的好方法。
猜你喜欢
  • 1970-01-01
  • 2018-12-23
  • 2020-10-29
  • 1970-01-01
  • 2021-10-04
  • 1970-01-01
  • 2020-02-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多