回帰の結果をMySQLに書き戻そうとしていますが、近似値を反復処理し、NaNをnull値として書き込むのに問題があります。もともと、私はこのように反復を行いました。
for i in dataframe:
cur = cnx.cursor()
query = ("UPDATE Regression_Data.Input SET FITTEDVALUES="+(dataframe['yhat'].__str__())+" where timecount="+(datafrane['timecount'].__str__())+";")
cur.execute(query)
cnx.commit()
cur.close()
.....次のように言って、どのSQLが私に返されますか。
"mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'NaN'
だから、私はyhatがNaNと等しくないときにPythonにコミットするように要求するだけでNaNを除外しようとしてきました:
for i in dataframe:
if cleandf['yhat']>(-1000):
cur = cnx.cursor()
query = ("UPDATE Regression_Data.Input SET FITTEDVALUES="+(dataframe['yhat'].__str__())+" where timecount="+(datafrane['timecount'].__str__())+";")
cur.execute(query)
cnx.commit()
cur.close()
しかし、私はこれを取得します:
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
だから、私は上記の構文でこれを回避しようとします:
if cleandf['yhat'][i]>(-1000):
しかし、これを取得します:
ValueError: Can only tuple-index with a MultiIndex
次に、次のように両方にitterows()を追加してみました。
for i in dataframe.iterrows():
if cleandf['yhat'][i]>(-1000):
しかし、上記と同じ問題が発生します。
ここで何が間違っているのかはわかりませんが、PandasDataFramesでの反復によるものだと思います。しかし、反復が正しく行われたとしても、NaNが出現したSQLにNullを書き込みたいと思います。
それで、どうやって私がこれをすべきだと思いますか?