【发布时间】:2017-07-27 09:27:10
【问题描述】:
【问题讨论】:
-
代码在哪里?
-
df.read_csv(...).dropna() -
嗯,空白行默认省略。
【问题讨论】:
df.read_csv(...).dropna()
首先用 pandas 读取你的 csv 文件
df=pd.read_csv('input.csv')
然后删除空白行,
df=df.dropna()
有关 dropna 的更多详细信息,请查看documentation。
【讨论】:
有问题:
for line in df:
print (line)
返回列名。
【讨论】:
如果我有一个如下所示的带有空白行的 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.0df = pd.read_csv('input.csv',delimiter=';') 将给出忽略空行的数据框。
您的代码在您使用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)
【讨论】:
对于最新的 pandas (v 1.3.0),有一个参数可以告诉它跳过空白行。默认情况下它是启用的,但如果你想让它为真(例如自我记录代码),只需将该标志设置为真。这是来自文档: 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)
【讨论】: