Ядро умирает при использовании Pandas для работы на DataFrame из SQL - PullRequest
0 голосов
/ 23 мая 2019

мое ядро ​​умирает, когда я пытаюсь изменить фрейм данных с данными, которые я получаю с помощью SQL-запроса.

Я уменьшил объем данных, увеличил объем ОЗУ и закомментировал код, который последовательно вызывал сбой ядра.

    python
    import pandas as pd
    import sqlalchemy
    sql_str = """some sql query limit 100""" 
    df = pd.read_sql(sql_str, engine)   
    list=[
    '1st name','2nd name'] 
    for i in range(0,len(list)):
        df.columns.values[i]=list[i]
    #naming the columns of my df
    df=df[df["tradedate"]<'01-01-2017']
    #this is a line of code that sometimes crashes the kernel
    df['strike']=pd.to_numeric(df["strike"],errors='coerce')
    #another one

Я ожидаю чистого кадра данных, с которым я могу работать, вместо этого ядро ​​умирает, и я получаю ошибку Windows.

Я был бы невероятно благодарен, если бы кто-нибудь мог помочь мне здесь!

Ответы [ 2 ]

0 голосов
/ 12 июня 2019

Я нашел решение проблемы, на случай, если кто-то случайно найдет эти вопросы:

Проблема возникла из-за того, как я назвал столбцы.

for i in range(0,len(list)):
      df.columns.values[i]=list[i]

не работает.Вместо этого я использую:

df.columns=list

Теперь ядро ​​больше не умирает.

0 голосов
/ 23 мая 2019

Попробуйте использовать параметр chunksize:

df = pd.read_sql(sql_str, engine, chunksize=20) #try different values
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...