Python有趣的python数据-R语言-图表-决策-Linux-Python

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

2019-06-28  本文已影响11人  PowerQuery

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

猜你喜欢

热点阅读