我有CSV文件,我在pandas中读到了:
#!/usr/bin/env python
import pandas as pd
import sys
filename = sys.argv[1]
df = pd.read_csv(filename)
不幸的是,这些文件的最后一行通常是损坏的(逗号数量错误)。目前,我在文本编辑器中打开每个文件并删除最后一行。
是否可以删除加载CSV的同一个python / pandas脚本中的最后一行,以节省必须采取这个额外的非自动步骤?
答案 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')
在此示例中,省略了最后三行。