我有一个csv看起来像这样:

name: john
date modified: 2018-09
from: jane
colum1 column2 column3
data    data    data

在从csv读取表格数据之前,是否有任何函数可以应用于删除任何行?目前,当我读到上面的行时,它们看起来像是奇怪的字符。
新表应如下所示:
colum1 column2 column3
data    data    data

最佳答案

我会这样做:

from io import StringIO
with open('filename.csv') as f:
    lines = f.readlines()
s = StringIO(''.join((l for l in lines if ':' not in l)))
pd.read_csv(s)

或者:
with open('filename.csv') as f:
    lines = f.readlines()
skip_rows_idx = [i for i, l in enumerate(lines) if ':' in l]
pd.read_csv('filename.csv', skiprows=skip_rows_idx)

如果标题中没有冒号,则可以调整以上代码(第一个示例)以删除第一行,如下所示:
import itertools
s = StringIO(''.join(itertools.dropwhile(lambda l: ':' in l, lines)))

(假设标题后面没有“坏”行)。

关于python - 从CSV读取时,如何检测和删除数据集上方的行?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52371578/

10-10 18:37
查看更多