我想从csv文件中读取以下数据:
id;type;start;end
Test;OIS;01/07/2016;01/07/2018
;;;
;;;
但是,pandas read_csv也会尝试读取空行;;;
。有没有办法自动忽略这些空数据的尾随行?
这些行导致问题,因为我使用read_csv
converters
,并且转换器中的函数会在遇到无效数据时尽职尽责地抛出异常,这意味着我甚至不会到达有效的数据帧。我可以更改函数以将无效数据转换为NaN
,然后从数据帧中删除NaN
,但是我会默默地丢弃错误的数据以及那些空行。
一些澄清:
答案 0 :(得分:2)
不确定您是否可以直接使用read_csv,但可以使用dropna:
import pandas as pd
df= pd.read_csv("in.csv", delimiter=";")
df.dropna(how="all", inplace=True)
print(df)
答案 1 :(得分:0)
如果您知道要忽略最后两行,则可以传递参数skipfooter=2
:
In [197]:
t="""id;type;start;end
Test;OIS;01/07/2016;01/07/2018
;;;
;;;"""
df = pd.read_csv(io.StringIO(t), sep=';', skipfooter=2)
df
Out[197]:
id type start end
0 Test OIS 01/07/2016 01/07/2018