Python 简单While循环语法错误

Python 简单While循环语法错误,python,while-loop,syntax,Python,While Loop,Syntax,我刚刚开始试验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...

我刚刚开始试验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]:这是导入如此大的数据集的好方法吗

while length_rows == i:
    pass
此外,您的except缺少“尝试”


您的语法错误发生在您的条件之后,而它应该如下所示。并且您错误地使用了除之外的。您可能应该使用try,而不是except

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

希望这能解决您的问题…

while循环中缺少冒号。除此之外,需要先尝试一下。需要在except.offtopic之后缩进代码:您应该尝试逐行或逐块解析文件。大致思路如下:我在while条件之后添加了冒号,但仍然没有调试。你能仔细检查一下正确的空格(制表符和空格)吗。您可以在文本编辑器或winword中使用视图空白功能
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