Warm tip: This article is reproduced from serverfault.com, please click

python-在列中添加随机值,具体取决于其他带 pandas 的列

(python - 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的对是值,但是我还没有找到一种很好的方法来做到这一点。

有什么建议吗?

提前致谢。阿丽娜(Alina)

Questioner
Alina
Viewed
11
tgrandje 2020-11-29 22:14:16

最简单的方法是首先删除所有重复项;你可以使用以下方法执行此操作:

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')