如何对列值(str)进行“分组”并在pandas中返回n个唯一的行[重复]

我有这个DataFrame

df1=
     col1 col2 col3 value
      A   B     AB   20
      C   C     AB   10
      D   C     AB   90
      E   E     AA   10
      F   E     AA   20
      G   F     AA   10

我想对列'col3'进行分组,并为每个col3值(随机)返回两行。

    df1=
     col1 col2 col3 value
      A   B     AB   20

      D   C     AB   90

      F   E     AA   20

      G   F     AA   10
评论
  • 大笨瓜o
    大笨瓜o 回复

    尝试这个:

    df.groupby('col3').apply(lambda x: x.sample(2)).reset_index(drop=True)
    

    或使用稍微更好的语法:

    df.groupby('col3').apply(pd.DataFrame.sample,n=2).reset_index(drop=True)