我看过Sklearn 分层抽样文档 http://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html以及熊猫文档 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.sample.html并且来自熊猫的分层样本 https://stackoverflow.com/questions/41035187/stratified-samples-from-pandas and sklearn 基于列的分层采样 https://stackoverflow.com/questions/36997619/sklearn-stratified-sampling-based-on-a-column但他们没有解决这个问题。
我正在寻找一种快速的 pandas/sklearn/numpy 方法来从数据集中生成大小为 n 的分层样本。但是,对于小于指定采样数的行,应该获取所有条目。
具体例子:
谢谢你! :)
Use min
将数字传递给样本时。考虑数据框df
df = pd.DataFrame(dict(
A=[1, 1, 1, 2, 2, 2, 2, 3, 4, 4],
B=range(10)
))
df.groupby('A', group_keys=False).apply(lambda x: x.sample(min(len(x), 2)))
A B
1 1 1
2 1 2
3 2 3
6 2 6
7 3 7
9 4 9
8 4 8
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)