You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将以整数(age)为索引的330行DataFrame下采样至97行?

解决方案:将DataFrame下采样至指定行数

针对你这个以age为整数索引、330行的DataFrame,要下采样到97行,这里有两个简洁高效的实现方式,按需选择即可:

方法一:按行位置均匀采样(最简洁)

如果只需要保证采样后的行在原数据中均匀分布,无需考虑age的数值分布,这个方法最快最直接:

import numpy as np

# 生成0到总行数-1之间的97个均匀整数索引
sample_idx = np.linspace(0, len(df)-1, 97, dtype=int)
downsampled_df = df.iloc[sample_idx]

原理很直观:np.linspace会在原数据的行位置范围内,生成97个间隔均匀的整数索引,再用iloc提取对应行,一步完成下采样。

方法二:基于age索引的区间采样

如果希望采样能贴合age的数值区间(比如原数据age分布不均匀时,保证每个年龄区间都有样本),可以用分箱分组的方式:

import pandas as pd

# 把age索引划分为97个等宽区间
df['age_bin'] = pd.cut(df.index, bins=97)
# 每个区间取第一行(也可以换成median()取中间值行、mean()取均值行等)
downsampled_df = df.groupby('age_bin').first().drop(columns='age_bin')

这个方法会根据age的数值范围拆分出97个区间,每个区间选一行样本,能更好地保留原数据在年龄维度上的分布特征。


内容的提问来源于stack exchange,提问作者user9454050

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:31:29