2017-07-30 18 views
-1

私はpandas (0.20.3)python 3.5.3不明な列「ナン」

を使用しています私はこの

mysql.connector.errors.ProgrammingError: 1054 (42S22): Unknown column 'nan' in 'field list' 

のようなエラーが発生している私はそれが理由のMySQLで考えた「ナンを理解していません'mullとして。私はまだ、このエラーが発生しているが、このarticle

によると、問題は、パンダ0.15.0

で修正されました

。私のコードに何か問題がありますか?

どこで修正する必要がありますか?

stocksDf = pd.read_csv('companys.csv', names=['name','place']) 

for i,row in stocksDf.iterrows(): 
    sql = "insert into CompanyUs(name,place) VALUES(%s,%s)" 
    data = (row['name'],row['place']) 
    cur.execute(sql,data) 
    pprint("Company Write : %s" % row['name']) 
    conn.commit() 
+0

状況は参照された記事と関連していて、「パンダ」のバージョンには関係していない。 'stocksDf = stocksDf.astype(object).where(pd.notnull(stocksDf)、None)'が役に立ちます。 – Huang

答えて

0

パンダread_csv機能は、データ、numpy.float64('nan')numpy.nanに(少なくとも)ヌルの2種類を置くことができます。一方は受け入れ可能で他方は受け入れられない場合があります。これらのケースの1つのように聞こえます。データのtype()が何であるかを確認するには、デバッガを使用します。次のことができますし、「修正」(DataFrame.replace)とのデータ[http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.replace.html#pandas-dataframe-replace]

0

あなたのデータは、改行文字やエスケープシーケンスのどこを持っているかもしれません。これはMySQLによって 'nan'とみなされます。だから、手動でこのような状況を調整したり、エスケープ文字を削除するにはパンダからのコードの別の部分を使用し、それは同じではありませんので、あなたは、他のMySQL APIから `execute`をpandas``から `to_sql`を使用されていませんが、