pandas - 带有权重的熊猫样本
问题描述
我有df
并且我想从中抽取一些关于一些变量分布的样本。假设df['type'].value_counts(normalize=True)
返回:
0.3 A
0.5 B
0.2 C
我想做这样的东西sampledf = df.sample(weights=df['type'].value_counts())
,它sampledf ['type'].value_counts(normalize=True)
会返回几乎相同的分布。如何在这里以频率传递 dict?
解决方案
Weights
必须采用与原始df相同长度的一系列,因此最好将其添加为列:
df['freq'] = df.groupby('type')['type'].transform('count')
sampledf = df.sample(weights = df.freq)
或不添加列:
sampledf = df.sample(weights = df.groupby('type')['type'].transform('count'))
推荐阅读
- wordpress - 更新 wordpress 和插件后出现 Wordpress 错误
- python - 如何在 Odoo 10 的 onchange 方法中向 One2many 字段添加一些新记录?
- python - 在pygame中移动图像后如何删除图像?
- python-3.x - 向电报机器人发送消息,错误:{'ok': False, 'error_code': 400, 'description': 'Bad Request: chat not found'}
- asp.net-core - 当 Route 属性设置为 Controller Action - ASP.NET Core 时,Swagger API 中断
- microsoft-teams - 团队:应用策略将应用添加到每个团队
- service - WIX:使用运行器和多 dll 安装服务
- mongodb - Mongo DB vs Redis 插入时间。蒙哥更快。下面的测试代码公平吗?
- python - 熊猫数据合并
- java - 一旦我输入昵称,用户就不会显示在 recyclerView 中