ele*_*ora 14 python dataframe pandas
我有一些CSV文件,我在熊猫中读到了:
#!/usr/bin/env python
import pandas as pd
import sys
filename = sys.argv[1]
df = pd.read_csv(filename)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这些文件的最后一行通常是损坏的(逗号数量错误).目前我在文本编辑器中打开每个文件并删除最后一行.
是否可以删除加载CSV的同一个python/pandas脚本中的最后一行,以节省必须采取这个额外的非自动步骤?
EdC*_*ica 18
传递error_bad_lines=False,它将自动跳过此行
df = pd.read_csv(filename, error_bad_lines=False)
Run Code Online (Sandbox Code Playgroud)
它的优点error_bad_lines是它会跳过而不会出现任何错误的线路,但如果最后一行始终是duff则skipfooter=1更好
感谢@DexterMorgan指出该skipfooter选项强制引擎使用比c引擎慢的python引擎来解析csv.
阅读http://pandas.pydata.org/pandas-docs/version/0.16.2/generated/pandas.read_csv.html.这里'skipfooter'参数可用于指定不想从末尾读取.csv文件的行.可能它可以帮助你.
使用skipfooter参数读取 csv 时,您可以省略最后 n 行:
df = pd.read_csv(filename, skipfooter=3, engine='python')
Run Code Online (Sandbox Code Playgroud)
在此示例中,省略了最后 3 行。