以下の形式のファイルをテキストファイルに入れて、pandasデータフレームに読み込もうとしています。
895|2015-4-23|19|10000|LA|0.4677978806|0.4773469340|0.4089938425|0.8224291972|0.8652525793|0.6829942860|0.5139162227|
ご覧のとおり、入力ファイルの浮動小数点の後に1整数があります。
df = pd.read_csv('mockup.txt',header=None,delimiter='|')
データフレームに読み込もうとすると、最後の4つの整数が取得されません
df[5].head()
0 0.467798
1 0.258165
2 0.860384
3 0.803388
4 0.249820
Name: 5, dtype: float64
入力ファイルに存在する完全な精度を取得するにはどうすればよいですか?文字列としてキャストできないように、実行する必要のある行列操作がいくつかあります。
私はdtype
について何かをしなければならないことを理解しましたが、それをどこで使うべきかわかりません。
表示の問題のみです。 docs を参照してください。
#temporaly set display precision
with pd.option_context('display.precision', 10):
print df
0 1 2 3 4 5 6 7 \
0 895 2015-4-23 19 10000 LA 0.4677978806 0.477346934 0.4089938425
8 9 10 11 12
0 0.8224291972 0.8652525793 0.682994286 0.5139162227 NaN
編集:(ありがとう マークディキンソン ):
パンダは、速度を上げるために完全な精度を犠牲にする専用の10進数から2進数へのコンバーターを使用します。合格
float_precision='round_trip'
to read_csvは、これを修正します。詳細については、 ドキュメント を参照してください。