首页 > 解决方案 > Pandas 按一列聚合,并为其他列采用任意随机行

问题描述

我有一个要求,我想按熊猫数据框的一列进行分组,并为其他列采用任何随机行。例如,数据框可以是:

df=pd.DataFrame({'a':['p','q','r','r'],'b':[1,2,3,4],'c':['l','m','n','o']})
Out[82]:
   a  b  c
0  p  1  l
1  q  2  m
2  r  3  n
3  r  4  o

我需要的输出(一种可能性):

 Out[83]:
   a  b  c
0  p  1  l
1  q  2  m
2  r  3  n

请注意,最后一行也可能是“r 4 o”,但不是“r 3 0”。我需要整行。我怎样才能做到这一点?

标签: pythonpandasaggregate

解决方案


尝试groupby().sample

df.groupby('a').sample(n=1)

如果这不起作用,那么您可以随机播放并删除重复项:

df.sample(frac=1).drop_duplicates('a')

样本输出:

    a   b   c
0   p   1   l
1   q   2   m
3   r   4   o

推荐阅读