如何从Pandas DataFrame中选取按年份均匀分布的子集?
Pandas按年份提取固定数量样本子集
你可以直接使用Pandas的groupby()结合sample()方法快速实现需求,代码如下:
import pandas as pd # 假设你的原始数据集存储在变量df中 subset_df = df.groupby('year', group_keys=False).sample(n=10, random_state=42)
参数说明:
groupby('year'):按year列对数据集进行分组group_keys=False:避免分组键被添加到结果的索引中,保持输出DataFrame的结构简洁sample(n=10):为每个年份分组抽取10条样本random_state=42:固定随机种子,确保每次运行抽取的样本完全一致,便于测试场景的复现
如果遇到部分年份的原始样本数少于10的情况,sample()会默认返回该年份的所有样本;如果需要强制抽取10条(允许重复样本),可以添加replace=True参数。
内容的提问来源于stack exchange,提问作者Shiva
相关产品推荐
相关产品推荐

