python - 在 Python Panda 中做一个 groupby 的样本时,如何获得一个四舍五入的样本
问题描述
现在我正在使用这个 python 代码使用pandas
库
grouped = df.groupby('EmployeeID')
temp = grouped.apply(lambda x: x.sample(frac= 0.1)
场景 1:如果 EmployeeID: 1 有 15 行,我将得到 2 个样本行作为结果。(15 行 *10%)
场景 2:如果employeeID 2 有 12 行,我将得到 1 个样本行。(12 行 * 10%)
我的问题是关于场景 2,我如何四舍五入以便得到 2 行而不是 1 行
12 行变成临时的 20 行,这样我就可以做 20 行 *10% = 2 行。
解决方案
IIUC 你可以math.ceil
像这样使用:
from math import ceil
grouped = df.groupby('EmployeeID')
temp = grouped.apply(lambda g: g.sample(n=ceil(0.1 * len(g))))
推荐阅读
- wordpress - 模块 '"tapable"' 没有导出的成员 'Tapable'
- python - AttributeError:模块“tensorflow.compat.v2”没有属性“extract_image_patches”
- python - 如何检查一个列表是否包含在另一个列表中,但要考虑到顺序
- python - 如何在 Python 中使用 tkinter 更改文本框(条目)的字体颜色
- angular-material - 如何创建与材料字体图标对齐的自定义字体图标?
- outlook - 微软团队用户检测
- java - Spring Security 测试@WithMockUser 不起作用
- angular - 应用于 angular-slickgrid 中的树数据网格时,过滤器无法正常工作
- windows - 通过 .bat 文件仅关闭活动应用程序的窗口
- java - java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: 无法初始化组件 [org.apache.catalina.webresources.Jar