从CSV文件中删除前“ n”行,并保留标题

时间:2020-05-13 11:44:23

标签: python pandas csv dataframe

好吧,我需要检查行数> ='x',如果是,则删除前'n'行

当前,我将csv加载到df,删除行并将其重新加载,但这不是一种非常干净有效的方法。你还认识其他人吗?

这是我所看到的人类语言算法:

~~~~~~~~~~
if number_of_rows(file.csv) >= 3000:
   del(file.csv[1:1499]) # as first line is header, we wouldn't want to delete it*
~~~~~~~~~~

UPD:忘记添加,该文件每分钟都在增长,我只需要它的最后1.5k行。 该代码是循环的一部分btw

1 个答案:

答案 0 :(得分:0)

IIUC,如果您确定文件可以放入内存,则可以使用上下文管理器。

n = 25 # your line count.
with open('/path/to/your_file.csv') as f:
    data = f.readlines()
    lines = len(data)
    if lines >= n:

        df = pd.read_csv(data,skiprows=range((1, lines-1500)) #using range will keep your header.
    else:
        df = pd.read_csv(data)
相关问题