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

新手上路,请多包涵

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

 df = pd.read_csv("mydata.csv", sep =',', nrows = 1)

这个函数只允许我阅读第一行,但我如何阅读第二行、第三行等等呢? (我想用熊猫。)

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

原文由 Guido Muscioni 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 585
2 个回答

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

 df1 = pd.read_csv("mydata.csv", nrows=10000)

此处将跳过已读取并存储在 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)

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

原文由 Davidvs 发布,翻译遵循 CC BY-SA 4.0 许可协议

查看 pandas 文档,有一个 read_csv 函数的参数:

 skiprows

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

 skiprows = [0,1]

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

原文由 Guido Muscioni 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题