代码之家  ›  专栏  ›  技术社区  ›  cektek1

简单While循环语法错误

  •  -1
  • cektek1  · 技术社区  · 7 年前

    我刚刚开始尝试Python来完成我的论文。我想导入一个巨大的csv文件,所以我决定将其按较小的部分导入,同时略过有意义的数据。要导入的csv是20GB,下面是我提供的函数:

    """importing 10e6 rows at the time...with 10e7 rows python crashes"""
    import pandas as pd
    import numpy as np
    
    def screma_dati(file):
        i=1000000
        print("\n...begin skimming...")
    
        #first reading
        data_values=pd.read_csv(file,nrows=i)
        print("\n\t Dataset:\t"+file)
        print("\n\t part n: 1")
    
        #further readings
        length_rows=i
        j=i
        while length_rows = i
            except KeyboardInterrupt:
            data=pd.read_csv(file,header=None,nrows=i,skiprow=j)
            shp=np.shape(data)
            length_rows=shp[0]
            idx=data.loc[data["mbaddr"].isin(np_cod)]#np_cod are reference code
            data_values.append(idx)
            j+=i
            print("\n\t part n: " +str(j/i))
    
        print("\n...end skimming...")
    
        return data_values
    

    它在编译时给了我语法错误,即使这可能是一个平庸的错误,我也不知道如何解决它。 我最近才开始使用python,所以函数可能没有更多的错误。。

    PS【offtopic】:这是导入如此大的数据集的好方法吗?

    2 回复  |  直到 7 年前
        1
  •  1
  •   Patrik Holop    7 年前
    while length_rows == i:
        pass
    

    此外,您的except缺少“try”

     try: 
        something
     except Exception:
        something
    
        2
  •  0
  •   Michael Yadidya Karthik Sekaran    7 年前

    语法错误发生在while条件之后,应该如下所示。您正在使用 除了 错误地。您可能应该使用 尝试 改为除外。

    while length_rows = i:
        try:
            data=pd.read_csv(file,header=None,nrows=i,skiprow=j)
            shp=np.shape(data)
            length_rows=shp[0]
            idx=data.loc[data["mbaddr"].isin(np_cod)]#np_cod are reference code
            data_values.append(idx)
            j+=i
            print("\n\t part n: " +str(j/i))
    
        except KeyboardInterupt:
            raise   # or just simple pass 
    
    print("\n...end skimming...")
    
    return data_values
    

    希望这能解决你的问题。。。