простая ошибка синтаксиса цикла - PullRequest
0 голосов
/ 16 мая 2018

Я только начал экспериментировать с Python для выполнения своей диссертации.Я хотел бы импортировать огромный CSV-файл, так что я решил импортировать его меньшими частями, одновременно просматривая значимые данные.CSV для импорта составляет 20 ГБ, и вот функция, которую я придумал:

"""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 ]

0 голосов
/ 16 мая 2018

Ваша синтаксическая ошибка после вашего условия while. Она должна выглядеть следующим образом. И вы используете за исключением неправильно. Вы, вероятно, должны использовать try вместо исключений.

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

Надеюсь, это решит вашу проблему ...

0 голосов
/ 16 мая 2018
while length_rows == i:
    pass

Тоже кроме недостатков "попробуй"

 try: 
    something
 except Exception:
    something
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...