当我尝试使用通过SQL查询获得的数据来更改数据帧时,内核死了。
我减少了数据量,增加了RAM并注释掉了使内核持续崩溃的代码。
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错误。
如果有人可以在这里帮助我,我将非常感激!
答案 0 :(得分:0)
尝试使用chunksize参数:
df = pd.read_sql(sql_str, engine, chunksize=20) #try different values
答案 1 :(得分:0)
我发现了一个解决问题的方法,以防有人随机发现以下问题:
问题出在我命名列的方式上。
for i in range(0,len(list)):
df.columns.values[i]=list[i]
不起作用。相反,我使用:
df.columns=list
现在内核不再死亡。