【问题标题】:pandas SeriesGroupBy.nlargest duplicates multilevel indexpandas SeriesGroupBy.nlargest 重复多级索引
【发布时间】:2019-06-13 23:44:18
【问题描述】:

我有熊猫系列
它具有名称为 useritem 的 MultiIndex:

>>> s
user  item
11    1       0.60
      3       0.46
      4       0.68
      2       0.75
      0       0.05
13    1       0.71
      3       0.82
      4       0.65
      2       0.45
      0       0.16
12    1       0.39
      3       0.06
      4       0.09
      2       0.96
      0       0.97
0     1       0.31
      3       0.27
      4       0.22
      2       0.52
      0       0.06
5     1       0.03
      3       0.47
      4       0.34

我想为每个用户获取 2 个最大值。我想要相同格式的结果。

但是当我这样做时,我得到了 user 的重复索引

>>> s.groupby('user').nlargest(2)
user  user  item
11    11    2       0.75
            4       0.68
13    13    3       0.82
            1       0.71
12    12    0       0.97
            2       0.96
0     0     2       0.52
            1       0.31
5     5     0       0.90
            3       0.47
7     7     1       0.84
            4       0.84
6     6     1       0.91

【问题讨论】:

  • 尝试对索引进行分组:s.groupby(level=0).nlargest(2)
  • @coldspeed level=0 也返回重复项

标签: python pandas group-by pandas-groupby


【解决方案1】:

添加group_keys=False:

>>> s.groupby('user', group_keys=False).nlargest(2)
user  item
11    2       0.75
      4       0.68
13    3       0.82
      1       0.71
12    0       0.97
      2       0.96
0     2       0.52
      1       0.31
5     0       0.90
      3       0.47

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-27
    • 2013-11-09
    • 2015-11-04
    • 2019-01-01
    • 2020-04-29
    • 2018-07-09
    • 1970-01-01
    相关资源
    最近更新 更多