python - 在 pandas groupby 之后对每个组进行采样

标签 python pandas random group-by pandas-groupby

我知道这个问题一定在某个地方得到了回答,但我就是找不到。

问题:groupby操作后对每组进行采样。

import pandas as pd

df = pd.DataFrame({'a': [1,2,3,4,5,6,7],
                   'b': [1,1,1,0,0,0,0]})

grouped = df.groupby('b')

# now sample from each group, e.g., I want 30% of each group

最佳答案

应用 lambda 并调用 sample带参数 frac:

In [2]:
df = pd.DataFrame({'a': [1,2,3,4,5,6,7],
                   'b': [1,1,1,0,0,0,0]})
​
grouped = df.groupby('b')
grouped.apply(lambda x: x.sample(frac=0.3))

Out[2]:
     a  b
b        
0 6  7  0
1 2  3  1

关于python - 在 pandas groupby 之后对每个组进行采样,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36390406/

相关文章:

python - 与Python中的子图共享X轴并同时更改大小

python - 添加带有计数的列

java - 无限 IntStream 的长度?

java - 创建不同唯一字符串值到指定范围的唯一整数值​​的映射

c# - 使用 Random 类随机化二维数组

python - Numpy:将数组复制到更多维度

python - 在前一个文件之上读取文件

python - 在 python 中打开并显示适合图像

python - 值错误: The following arguments have not been supplied: email

Python Pandas 数据框另存为 HTML 页面