读取csv文件时删除空白行

时间:2017-07-27 09:27:10

标签: python pandas csv

我试图从我的cvs文件中删除空白行,但这不起作用,它只写出第一行

请看看并告诉我如何获取包含文本的所有行并跳过空白的行

这是代码: file  我只是读出了csv文件的第一行

提前谢谢!

4 个答案:

答案 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_linesbool,默认为 True
如果为 True,则跳过空行而不是解释为 NaN 值。

因此,在您的代码中是:

df = pd.read_csv(path, sep = ';', skip_blank_lines=True)