2016-09-02 4 views
-1

pd.DataFrameを作成しようとしていますが、データ型が正しく取得できません。私はfloatの2つのnumpy配列を持っています。パンダのデータフレーム - データ型の問題

ここに見られるように彼らは(& Y x)の座標のリストから作成された:参考

# Take coordinates from list and convert to a numpy array 
x_vector = np.asarray(x_list, dtype=float) 
y_vector = np.asarray(y_list, dtype=float) 

ここでどのように見えるかx_vectorのサンプルです:私は嬉しく思います

[-2248925.48185815 -2248925.48185815 -2248080.13621823 -2262432.04991849 
-2250570.32692157 -2237312.76315587 -2237312.76315587 -2245650.16260083 
-2245650.16260083 -2249323.93572129 -2247050.83128422 -2253151.83634956] 

ここで書式を設定すると、パンダのデータフレームにx_vectory_vectorを追加しようとすると問題が発生します。

私のロジックは私のindexが、私は自分のデータに対応するcolumnsを追加する、ということと等しいので、私は緯度/ロンの201件のレコードを持っているということです、最終的に私は私の座標(フロート)と一致するdtypeを設定します。ここで

は私のコードです:私はコンソールにdfを印刷するとき

df = pd.DataFrame(index=range(1, 202, 1), columns=['lat', 'lon', 'ws_daily_max'], dtype=float) 

df['lat'] = y_vector 
df['lon'] = x_vector 

はしかし、私は、小数点以下の桁数が大幅にずれて、これらの値を取得します。何がうまくいかなかった、なぜ緯度/経度の値が変わったのですか?上記のフロート値と同じであることを期待していました。つまり、(-2248925.48185815)ですか?

index lat lon ws_daily_max 1 1.895464e+06 -2.248925e+06 NaN 2 1.895464e+06 -2.248925e+06 NaN

私は何が起こったのかに関しては本当に混乱しています。エラーメッセージは表示されませんが、これはではなく、の結果でした。なぜ、どのようにこれを修正するかについての明確さは非常に高く評価されるでしょう。

Help me、StackExchange。あなたは私の唯一の希望です。

答えて

3

これは同じ番号の科学的表記法です。 1.895464e + 06は1.895464 * 10^6 = 1895465を意味します。小数点はシフトしませんでした。数字の表情を変えたい場合は、http://pandas.pydata.org/pandas-docs/stable/options.htmlをご覧ください。私はこれが役立つことを願っています

+0

[この質問](http://stackoverflow.com/questions/21137150/format-suppress-scientific-notation-from-python-pandas-aggregation-results)に受け入れられた回答は、そのようにする方法を正確に示しています。 –

+0

@AmiTavory面白いですが、私はそのスレッドで受け入れられた答えに同意しますが、美的目的のために文字列に変換するのはベストプラクティスではありません。 – Nikolai

+0

@ニコライ私は、そこに答える人があなたに完全に同意したと信じています。ただし、答えの最初の部分に注意してください。 - 'pd.set_option( 'display.float_format'、lambda x: '%.3f'%x)' - 表示オプションを設定するだけです。 –

関連する問題