只替换每个用户的第一行



我有一个表,其中包含用户、食物和他们最喜欢的食物。

is_favorite

不需要groupby,只需使用duplicated和布尔索引:

df.loc[~df['user'].duplicated(), 'is_favorite'] = True

输出:

user      food  is_favorite
0     1      Beef         True
1     1      Pork        False
2     3      Pork         True
3     3      Beef        False
4     3  Potatoes        False
5     4      Beef         True

如果您想设置一个随机行使用groupby.sample:

idx = df.groupby('user')['is_favorite'].sample(n=1).index
df.loc[idx, 'is_favorite'] = True

的例子:

user      food  is_favorite
0     1      Beef         True
1     1      Pork        False
2     3      Pork        False
3     3      Beef         True
4     3  Potatoes        False
5     4      Beef         True

相关内容

  • 没有找到相关文章

最新更新