pythonpandas读取csv和另外一个csv进行比较_使用pandas读取csv文件时如何选择多行?...

本文讨论如何高效地从大型CSV文件中选取特定行。通过使用`pd.read_csv`的`nrows`参数限制读取行数,结合`skiprows`跳过不需要的行,可以减少文件读取时间。对于已知需要行号列表,可以先构建跳过列表,然后读取所需行。这种方法适用于处理包含数百万行的大文件。
摘要由CSDN通过智能技术生成

问题描述:

我有一个非常大的csv文件与millions of rows和我需要的行号列表rownumberList = [1,2,5,6,8,9,20,22]

我知道有一种叫做skiprows的东西有助于在reading csv file那样跳过几行df = pd.read_csv('myfile.csv',skiprows = skiplist)#skiplist would contain the total row list deducts rownumberList

但是,由于csv文件非常大,直接选择我需要的行可能更有效。所以我想知道使用select rows时有什么方法可以使用read_csv吗?之后不尝试使用dataframe选择行,因为我尝试最小化读取文件的时间。谢谢。

解决方法:

有一个名为nrows : int, default None的参数要读取的文件行数。用于阅读大型文件(Docs)pd.read_csv(file_name,nrows=int)

如果您需要中间的某些部分。在skiprows中同时使用nrows和read_csv。如果跳过表示开始行,nrows将指示跳过后的下一行数。

例:pd.read_csv('../input/sample_submission.csv',skiprows=5,nrows=10)

这将从第6行到第16行选择数据

根据评论进行编辑:

由于有一个列表,这个可能会有帮助,即li = [1,2,3,5,9]r = [i for i in range(max(li)) if i not in li]df = pd.read_csv('../input/sample_submission.csv',skiprows=r,nrows= max(li))# This will skip the rows you dont want as well as limit the number of rows to maximum of the list.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值