pandas读取csv时如何跳过不确定的行数

最近在用pandas处理csv文件时,发现一个头大的问题:系统导出的csv文件表头之前有些不需要的行,这些行在每个csv文件中的数目都不一样,如下图:


csv文件开头的若干行不需要

直接用pd.read_csv()去读取会报错,如果每个文件都手动指定跳过的行,又嫌太罗嗦,我需要一种自动化的方式来跳过这些不需要的行。

爬网半天,找到一种解决办法

image.png

我直接照抄,并进行了简单改造,以适应我的需要:

  #跳过每个csv文件开头不需要的行的函数
def skip_to(fle,**kwargs):
  if os.stat(fle).st_size == 0:
    raise ValueError("File is empty")
with open(fle) as f:
    pos = 0
    cur_line = f.readline()
    while not cur_line.find('日期')>=0:
        pos = f.tell()
        cur_line = f.readline()
    f.seek(pos)
    return pd.read_csv(f, **kwargs)

然后在自己的函数中调用这个函数,就解决了pandas读取csv文件时,跳过不定行数的问题:

 def gen_data(pattern,groupby):
    f_path=[x for x in files  if re.search(pattern,x)!=None][0]
    df=skip_to(f_path,delimiter=',')
    df=df.groupby(groupby).sum()
    df=df[['展现','点击']]
     ……
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容