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

作者: PowerQuery | 来源:发表于2019-06-28 16:50 被阅读11次

    最近在用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[['展现','点击']]
         ……

    相关文章

      网友评论

        本文标题:pandas读取csv时如何跳过不确定的行数

        本文链接:https://www.haomeiwen.com/subject/abjecctx.html