在熊猫中读取除CSV文件的最后一行

时间:2015-11-13 09:39:47

标签: python pandas dataframe

我有CSV文件,我在pandas中读到了:

#!/usr/bin/env python

import pandas as pd
import sys

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

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

是否可以删除加载CSV的同一个python / pandas脚本中的最后一行,以节省必须采取这个额外的非自动步骤?

3 个答案:

答案 0 :(得分:15)

传递error_bad_lines=False,它会自动跳过此行

for

df = pd.read_csv(filename, error_bad_lines=False) 的优点是它会跳过而不会出现任何错误行,但如果最后一行始终是duff,那么error_bad_lines会更好

感谢@DexterMorgan指出skipfooter=1选项强制引擎使用比c引擎慢的python引擎来解析csv。

答案 1 :(得分:8)

阅读http://pandas.pydata.org/pandas-docs/version/0.16.2/generated/pandas.read_csv.html。这里'skipfooter'参数可用于指定不想从末尾读取.csv文件的行。可能对你有帮助。

答案 2 :(得分:3)

使用skipfooter参数读取csv时,可以省去最后n行:

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

在此示例中,省略了最后三行。