データフレームからSQLデータベースのサンドボックステーブルにデータを書き込もうとしています。 dfのデータの例を以下に示します。sqlalchemy-pythonを使用してNULL値を処理する
rank type id lp olp
0 A 823L02X 24.95 NULL
1 B 823M00B 39.95 NULL
2 C 823M00B 39.95 12.95
次のコードは、データフレーム内のすべてのデータが宛先の列に指定されたdtypeに準拠している限り正常に動作します。私も書いているテーブルで
connect_string = r'<user>:<password>@<host>/<databasename>'
db = create_engine('mysql+mysqldb://' + connect_string)
df.to_sql(name=<table_name>, con=db, if_exists='append', index=True)
、列のLPとOLPは、小数点以下のDTYPEを持っている - しかし、NULL値が含まれているデータフレーム内のいくつかの値があります。これらのNULL値は、私がテーブルに書き込もうとするたびにエラーを投げています - 私はsqlがNULLを認識するのではなく文字列として扱うと思います。
sqlalchemy.exc.OperationalError: (_mysql_exceptions.OperationalError) (1366, "Incorrect decimal value: 'NULL' for column 'olp' at row 1")
私はHeidiSQLでインポートツールを使用して、CSVファイルとしてこのデータフレームをエクスポートし、その後、手動でテーブルにそれをアップロードした場合、プログラムは自動的にNULL値を認識し、問題はありません。
どのようにsqlalchemyを使用して同じ結果を得ることができますか?