【问题标题】:Adding random values in column depending on other columns with pandas根据带有熊猫的其他列在列中添加随机值
【发布时间】:2020-11-29 14:05:46
【问题描述】:
我有一个包含“OfferID”、“SiteID”和“CatgeoryID”列的数据框,它们应该代表网站上的在线广告。然后,我想为净推荐值添加一个名为“NPS”的新列。这些值应在 1 到 10 之间随机给出,但在 OfferID、SideID 和 CatgeoryID 相同的情况下,它们需要具有相同的 NPS 值。我想过使用一个字典,其中 NPS 是键,不同的 ID 对是值,但我还没有找到一个好的方法。
有什么建议吗?
提前致谢。
阿丽娜
【问题讨论】:
标签:
python
pandas
numpy
random
【解决方案1】:
最简单的方法是首先删除所有重复项;你可以这样做:
uniques = df[['OfferID', 'SideID', 'CategoryID']].drop_duplicates(keep="first")
之后,您可以执行以下操作(请注意,您的随机值不是唯一的):
uniques['NPS'] = [random.randint(0, 100) for x in uniques.index]
然后:
df = df.merge(uniques, on=['OfferID', 'SideID', 'CategoryID'], how='left')