我知道这个问题一定在某个地方得到了回答,但我就是找不到。
问题: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/