答案 0 :(得分:3)
首先使用带有
的pandas读取您的csv文件df=pd.read_csv('input.csv')
然后删除空白行
df=df.dropna()
有关dropna的更多详情,请查看documentation。
答案 1 :(得分:2)
有问题:
for line in df:
print (line)
返回列名。
答案 2 :(得分:2)
如果我有一个像空白行一样的csv文件
B;D;K;N;M;R 0;2017-04-27 01:35:30;C;3.5;A;01:15:00;23.0 1;2017-04-27 01:37:30;B;3.5;B;01:13:00;24.0 2;2017-04-27 01:39:00;K;3.5;C;00:02:00;99.0 4;2017-04-27 01:39:00;K;3.5;C;00:02:00;99.0
df = pd.read_csv('input.csv',delimiter=';')
会使数据框忽略空行。
B D K N M R 0 2017-04-27 01:35:30 C 3.5 A 01:15:00 23.0 1 2017-04-27 01:37:30 B 3.5 B 01:13:00 24.0 2 2017-04-27 01:39:00 K 3.5 C 00:02:00 99.0 4 2017-04-27 01:39:00 K 3.5 C 00:02:00 99.0
使用open
时,您的代码有效。 Pandas read_csv会将csv文件转换为数据帧。你可能会彼此混淆。
df = open('input.csv')
new_contents = []
for line in df:
if not line.strip():
continue
else:
new_contents.append(line)
答案 3 :(得分:0)
对于最新的 pandas (v 1.3.0),有一个参数可以告诉它跳过空白行。默认情况下它是启用的,但是如果您无论如何都想使其为 True(例如自记录代码),只需将该标志设置为 True。这是来自文档: https://pandas.pydata.org/docs/reference/api/pandas.read_csv.html
skip_blank_lines:bool,默认为 True
如果为 True,则跳过空行而不是解释为 NaN 值。
因此,在您的代码中是:
df = pd.read_csv(path, sep = ';', skip_blank_lines=True)