sql >> データベース >  >> RDS >> PostgreSQL

パンダ-sqliteへのwrite_frame-datetime64[ns]

    datetime64フィールドが問題を引き起こしていることは確かに正しいです。 Sqliteには実際の日時タイプはありませんが、テキストまたは整数タイプを使用して時間を表します( http://を参照) www.sqlite.org/datatype3.html および http://www.sqlite.org/lang_datefunc.html 。

    したがって、実行する内容に応じて、最初に日時列を文字列に変換できます。

    df['field2'] = df['field2'].apply(str)
    

    またはint(1970-01-01 00:00:00 UTCからの秒数):

    df['field2'] = df['field2'].astype('int64')
    

    次に、データをsqliteに書き込みます。

    補足:

    • どのバージョンのパンダを使用していますか?バージョン0.13(またはそれ以前)では、if_exists='replace'にバグがあるためです。 0.13.1(現時点で最新の安定版リリース)で修正された実装
    • 今後のパンダ0.14では、sqlalchemyに基づくsql関数の新しい実装があり、文字列への変換が自動的に行われます(したがって、datetime64データのエラーは発生しなくなりました)。



    1. MySQLは結果をアルファベット順に表示しますが、アルファベット順にソートされたリストの前に特定のアイテムを表示します

    2. SQLの制約

    3. mysqlユニオンの質問

    4. Python、mysql.connectorエラー:フェッチ元に​​結果セットがありません。 cgitbは、関数に渡される正しい値を示します