【问题标题】:Python Pandas: How to read only first n rows of CSV files in?Python Pandas:如何只读取前 n 行 CSV 文件?
【发布时间】:2014-07-14 05:58:48
【问题描述】:

我有一个非常大的数据集,我无法读取整个数据集。所以,我正在考虑只读取其中的一部分进行训练,但我不知道该怎么做。任何想法将不胜感激。

【问题讨论】:

    标签: python pandas csv file-io


    【解决方案1】:

    如果您只想读取前 999,999(非标题)行:

    read_csv(..., nrows=999999)
    

    如果您只想读取第 1,000,000 ... 1,999,999 行

    read_csv(..., skiprows=1000000, nrows=999999)
    

    nrows : int, default None 要读取的文件行数。对...有用 读取大文件*

    skiprows:类列表或整数 文件开头要跳过的行号(0 索引)或要跳过的行数(int)

    对于大文件,您可能还想使用 chunksize:

    chunksize:int,默认无 返回 TextFileReader 对象进行迭代

    pandas.io.parsers.read_csv documentation

    【讨论】:

    • 没关系,它们有点隐藏。文档可以使用这些示例。 chunksize 有点痛苦,你必须处理大小不均的块。还要用你知道你需要的固定大小预先分配你的数组/数据帧,只要你能避免它,不要动态地做 concat/append。
    • ...而且,界面也不像nstart=,nend=...。你必须对skiprows = nend - nrows进行算术运算
    • 我猜这只是从 SQL 中接管的:LIMIT nstart, skiprows :/
    • ...如果您还使用 header=n/list,请不要忘记 n-n 错误
    猜你喜欢
    • 2018-11-02
    • 2016-12-06
    • 2015-10-23
    • 2022-01-25
    • 1970-01-01
    • 2019-12-18
    • 2010-12-18
    • 2021-12-08
    相关资源
    最近更新 更多