我刚刚开始尝试使用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]:这是导入这么大的数据集的好方法吗?
答案 0 :(得分:1)
while length_rows == i:
pass
此外,你的缺席"尝试"
try:
something
except Exception:
something
答案 1 :(得分:0)
您的语法错误是在您的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
希望这能解决你的问题...