質問は簡単ですが、何時間もの検索の後に解決策が見つかりません。python pandas read_csvブール値を文字列として
私はcsvファイルを読み込み、オブジェクトとブール値を文字列に強制してSQLに書きたいと思っています。ただし、MSSQLへのデータの解析時には、TRUEとFALSEではなく、ブール値が文字列 '0'と '1'に変換されます。
、以下を参照してくださいコード:
pandasDF = pandas.read_csv(pathCSV, sep = ';')
emptyTable(session, tableName)
obj_cols = pandasDF.select_dtypes(include=[object, bool]).columns.values.tolist()
pandasDF.to_sql(tableName, engine, if_exists = 'append', dtype = {c: String for c in obj_cols}, index = False)
私は最善の解決策は、しかし、私はこれを達成する方法を見つけることができない、pandas.read_csvがブールデータ型を認識停止できるようにすることだと思う...
'dtype = {c:obj_colsのcの文字列}'に 'String'とは何ですか?あなたのコードのどこにでも大文字のSを持つ 'String'が定義されていないので、私は尋ねます。 – vmg
あなたの '' String' '変換がブール値のために働いていないので、必要なのは 'to_sql'のe'dtype'引数にカスタムディクテーションを渡すことだけです。 – vmg
お返事ありがとうございました! 'dtype = {c:obj_colsのcの文字列}'はうまくいきます。オブジェクト型とブール型の両方が文字列に変換されていることを確認します。したがって、ブール型の列は文字列に変換されますが、 'TRUE'と 'FALSE'ではなく '1'と '0'の形式になります – Dendrobates