如何使用熊猫读取csv中的特定行号

Gui*_*oni 3 python csv dataframe pandas

我有一个庞大的数据集,我想逐行阅读它。现在,我正在使用pandas读取数据集:

df = pd.read_csv("mydata.csv", sep =',', nrows = 1)
Run Code Online (Sandbox Code Playgroud)

此功能允许我只读了第一线,但我怎么能读取第二,第三个等等?(我想用熊猫。)

编辑:为了更清楚,我需要一次读取一行,因为数据集为20 GB,我无法将所有内容保留在内存中。

小智 10

一种方法是逐部分读取文件并存储每个部分,例如:

df1 = pd.read_csv("mydata.csv", nrows=10000)
Run Code Online (Sandbox Code Playgroud)

在这里,您将跳过已读取并存储在 df1 中的前 10000 行,并将接下来的 10000 行存储在 df2 中。

df2 = pd.read_csv("mydata.csv", skiprows=10000 nrows=10000)
dfn = pd.read_csv("mydata.csv", skiprows=(n-1)*10000, nrows=10000)
Run Code Online (Sandbox Code Playgroud)

也许有一种方法可以将这个想法引入 for 或 while 循环。


Gui*_*oni 5

在熊猫文档中,有一个read_csv函数的参数:

skiprows
Run Code Online (Sandbox Code Playgroud)

如果将列表分配给此参数,它将跳过该列表索引的行:

skiprows = [0,1]
Run Code Online (Sandbox Code Playgroud)

这将跳过第一行和第二行。由此的组合nrowskiprows允许分别读取数据集中的每一行。