Python:每组随机选择

标签 python random pandas

假设我有一个看起来像这样的数据框:

Name Group_Id
AAA  1
ABC  1
CCC  2
XYZ  2
DEF  3 
YYH  3

如何为每个 Group_Id 随机选择一个(或多个)行?假设我希望每个 Group_Id 随机抽取一次,我会得到:

Name Group_Id
AAA  1
XYZ  2
DEF  3

最佳答案

0.16.x 开始 pd.DataFrame.sample提供了一种从对象轴返回随机项目样本的方法。

In [664]: df.groupby('Group_Id').apply(lambda x: x.sample(1)).reset_index(drop=True)
Out[664]:
  Name  Group_Id
0  ABC         1
1  XYZ         2
2  DEF         3

关于Python:每组随机选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22472213/

相关文章:

python - 基于array和colormap对matplotlib的背景进行阴影处理

python - 无法运行巨大的Python程序

c - AVR Atmega128 范围内的随机数发生器

python - 比较两个日期列 - 检查它们是否在范围内 - 从第三列获取值

python - Numpy 数组是否可哈希?

python - 有条件的列上的 Pandas 累积总和

Python Flask 应用程序管理器

python - 如何使用传统 python 或使用 pandas/numpy/sciy 在列表中按顺序选择第一次出现的重复项

java - 实现生成 HttpSession key

c - 为什么用OpenMP生成随机数没有提速?