我有一些csv文件,每小时会在每个文件中添加一行。
我想从文件中读取最后20行并将它们加载到数据帧中。
我的方法是:
log_total = [pd.read_csv(f, skiprows=) for f in glob('./coins/*.csv')]
如何计算文件中的总行数?
答案 0 :(得分:0)
AFAIK如果你不确切地知道应该跳过多少行,Pandas中没有内置的内存效率方法来解析最后N行。
您可以尝试以下方法:
from collections import deque
from io import StringIO
def read_last_lines(fn, n=20, encoding='utf-8', **kwargs):
with open(fn, encoding=encoding) as f:
return pd.read_csv(StringIO(''.join(deque(f, n))), **kwargs)
log_total = pd.concat([read_last_lines(f,20) for f in glob('./coins/*.csv')],
ignore_index=True)