一尘不染

在熊猫分组之后对每个组进行采样

python

我知道必须在某些地方回答此问题,但我找不到它。

问题 :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

阅读 136

收藏
2020-12-20

共1个答案

一尘不染

应用lambda并sample使用param调用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
2020-12-20