0

I have this 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

I want to groupby column 'col3' and return two rows for each col3 value(random).something like this.

    df1=
     col1 col2 col3 value
      A   B     AB   20

      D   C     AB   90

      F   E     AA   20

      G   F     AA   10
Bounty Collector
  • 615
  • 7
  • 19

1 Answers1

1

Try this:

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

OR with slightly better syntax:

df.groupby('col3').apply(pd.DataFrame.sample,n=2).reset_index(drop=True)
Mayank Porwal
  • 33,470
  • 8
  • 37
  • 58