多くの固定幅データファイルを読み込み、csvに変換できるPythonスクリプトを設定しようとしています。私はこのようなpandasを使用していますこれを行うには:Python Pandasを使ってデータ型の解釈をしないで固定幅のファイルを読む
pandas.read_fwf('source.txt', colspecs=column_position_length).\
to_csv('output.csv', header=column_name, index=False, encoding='utf-8')
どこcolumn_position_length
とcolumn_name
は、データを読み書きするために必要な情報を含むリストです。
これらのファイルの中には、テスト回答を表す長い文字列があります。例:333133322122222223133313222222221222111133313333
は、多肢選択式テストの正解を表しています。これは数値よりもコードのほうが多いです。私が抱えている問題は、これらの値を浮動小数点として解釈し、これらの値をCSV(3.331333221222221e + 47)に科学記法で書くパンダです。
この問題に関する多くの質問がありましたが、私の問題は解決されませんでした。
- Solution 1 - この時点では値はすでに浮動小数点数に変換されているため、これは役に立ちません。
- Solution 2 - パンダによると、documentation、
dtype
は、Pythonのread_fwf
の引数としてサポートされていません。 - 解決方法3コンバーターを使用する - コンバーターを使用する際の問題は、データ型に変換する列名またはインデックスを指定する必要がありますが、すべての列を文字列として読み取ることです。
2番目のオプションは、すべての列を文字列として読み取っているようですが、残念ながらread_fwf
ではサポートされていません。助言がありますか?
'dtype'がサポートされています。はい、' object'に設定すると最適な解決策になります。 – DyZ
dtype:列の型名または型 - >型、デフォルトなし データまたは列のデータ型。例えば。 {'a':np.float64、 'b':np.int32}(エンジン= 'python'ではサポートされていません)。 dtypeを保存し、解釈しないためにstrまたはobjectを使用します。 http://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_fwf.html – dselgo