python - 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”。我需要整行。我怎样才能做到这一点?
解决方案
尝试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
推荐阅读
- go - 为什么在 golang 中将其称为“分解”导入语句?
- reactjs - null 在本机反应中不是处于组件状态的对象
- c# - 如何在同步 c# 中的 BeginInvoke 中设置限制发送请求每分钟
- scala - 如何在 SBT 控制台中禁用警告
- linker - 内部 libc 函数调用是否必须通过 .plt
- salesforce - 找不到到请求的目标 SALESFORCE 的有效证书路径
- laravel - 如何在laravel中将格式为YYYY-MM-DD的日期数组转换为YYYY-MM?
- python-3.x - PYCURL 安装错误,退出状态 10 并且安装时模块未出现
- javascript - 为什么调用此函数时输出未定义?
- ios - 可以使用 xib 手势识别器进行 segue 吗?