当前位置: 首页 > 知识库问答 >
问题:

读取pandas中CSV文件的最后一行以外的所有内容

双恩
2023-03-14

我在pandas中读取了CSV文件,其中包括:

#!/usr/bin/env python

import pandas as pd
import sys

filename = sys.argv[1]
df = pd.read_csv(filename)

不幸的是,这些文件的最后一行经常损坏(逗号数错误)。目前,我在文本编辑器中打开每个文件,并删除最后一行。

有没有可能删除加载CSV的同一个python/熊猫脚本中的最后一行,以节省必须采取这个额外的非自动化步骤?

共有3个答案

南宫天逸
2023-03-14

在csv中读取时,可以使用skipfoter参数省略最后n行:

df = pd.read_csv(filename, skipfooter=3, engine='python')

在本例中,最后3行是不匹配的。

冯澄邈
2023-03-14

阅读http://pandas.pydata.org/pandas-docs/version/0.16.2/generated/pandas.read_csv.html.此处的'skipfooter'参数可用于指定不希望读取的行数。csv文件从末尾开始。也许对你有帮助。

马俊
2023-03-14

通过error\u bad\u lines=False,它将自动跳过这一行

df = pd.read_csv(filename, error_bad_lines=False)

error_bad_lines的优点是它将跳过并且不会在任何错误的行上出错,但是如果最后一行总是达夫,那么skipfoter=1更好

感谢@DexterMorgan指出,skipfooter选项强制引擎使用python引擎,该引擎在解析csv时比c引擎慢。

 类似资料:
  • 问题内容: 当我写这篇文章时,我尝试使用Pandas处理大型CSV文件。 它会引发“ pandas.parser.CParserError:错误标记数据。C错误:内存不足” wc -l表示有13822117行,我需要在此csv文件数据帧上进行汇总,有没有办法处理其他然后拆分CSV成几个文件,并编写代码以合并结果?有什么建议吗?谢谢 输入是这样的: 所需的输出是这样的: 如果数据集较小,则可以使用下

  • 我正在运行一个程序,可以处理30000个类似的文件。他们中的一些人正在停止并产生这个错误...

  • 问题内容: 我有大型CSV,我只对这些行的子集感兴趣。特别是,我想读取在满足特定条件之前发生的所有行。 例如,如果将产生数据框: 有什么方法可以读取csv中的所有行,直到col B超过10。在上面的示例中,我想读入: 我知道在读入数据帧后如何将这些行扔掉,但是到现在为止,我已经花了所有的计算来读入它们。在读取csv之前,我无法访问最后一行的索引请不要跳过脚) 问题答案: 您可以分批读取csv。由于

  • 问题内容: 我有一个非常大的数据集,我无法读取其中的整个数据集。因此,我正在考虑只读取其中的一个数据块进行训练,但是我不知道该怎么做。任何想法将不胜感激。 问题答案: 如果您只想读取前999,999行(非标题): 如果您只想读取1,000,000 … 1,999,999行 nrows :int,默认值无要读取的文件行数。对读取大文件有用* skiprows :类似于列表或整数的行号,在文件开始处要

  • 我正在通过Pandas的read_sql和外部应用程序(DbVisualizer)运行完全相同的查询。 DbVisualizer返回206行,而pandas返回178行。 我试过根据如何在不耗尽内存的情况下从sql查询中创建大型pandas数据帧?中提供的信息读取pandas by chucks中的数据,它没有做出任何改变。 造成这种情况的原因和补救方法是什么? 这些栏目包括:日期、年份、工作日、

  • 如何在JMeter中将一个csv文件循环到另一个csv文件,其中第一个csv文件包含所有登录数据,另一个csv文件包含交易数据。我应该运行1个出纳员应该处理30笔交易的地方。