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

如何用Pandas高效保留DataFrame中每个neighborhood的100行数据?

高效精简大型数据集的方法

针对超大型数据集,按neighborhood分组后每组保留指定行数(此处为100行),最高效的实现方式是利用Pandas的分组操作,结合对应方法满足不同需求:

1. 保留每组前100行(按原数据顺序)

若无需随机抽样,仅保留每个neighborhood的前100条记录,groupby+head()是性能最优的方案,Pandas内部已做优化,避免冗余计算:

import pandas as pd

# 读取你的超大型数据集(示例为CSV格式,可替换为其他读取方式)
df = pd.read_csv("your_large_dataset.csv")
# 按neighborhood分组,每组保留前100行
trimmed_df = df.groupby("neighborhood").head(100)

2. 随机保留每组100行(无固定顺序要求)

若需要从每个neighborhood中随机抽取100条记录,使用groupby+sample(),设置random_state可保证结果可复现:

trimmed_df = df.groupby("neighborhood").sample(n=100, random_state=42)

超大型数据集额外优化提示

  • 读取数据时仅加载必要列,减少内存占用:
    df = pd.read_csv("your_large_dataset.csv", usecols=["name", "neighborhood"])
    
  • 若数据集无法完全加载到内存,可使用Dask并行处理框架,语法与Pandas兼容:
    import dask.dataframe as dd
    
    ddf = dd.read_csv("your_large_dataset.csv")
    trimmed_ddf = ddf.groupby("neighborhood").head(100)
    # 将计算结果转为Pandas DataFrame
    trimmed_df = trimmed_ddf.compute()
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:45:32