2017-07-05 25 views
0

私は最近この問題に直面しました。列にはいくつかの値が指数形式であり、残りは通常の数値です。Python pandas - データフレームの数値列が指数である

2つの列をマージしたいが、指数形式のものでは結果が得られない。私は2つのデータフレームをマージするためにこの問題をどのように克服できますか。

df1 
2780989 
2780749 
2816256 

df2 
2780989 
2780749 
2.81625e+06 

pd.merge(df1,df2, on = 'column1') 
2780989 
2780749 

私は、文字列で両方の列を変更しようとした、それは私が私が非常に最初の列としてマージしたい列を維持されている回避策を持っているのいずれかである

2780989.0 
2780749.0 
2816256.0 

を示します私のDFですが、それが2番目の位置にある場合は、上記のように値が表示されます。

+0

方法は、IEEE浮動小数点数としてその内部representionとは何の関係もありません。 – MaxNoe

+0

'2.81625e + 06'は' 2816256'と等しくないことに注意してください。あなたの期待された成果は? – Michael

+0

こんにちはマイケル、はい、これらは同じではありませんが、値は私のdfでそれは他のdfとマージされていません –

答えて

0

さんが浮くように、両方のデータフレームに変換してみましょう:

df1 = pd.DataFrame({'Col1':[2780989,2780749,2816250]}, dtype='int') 

df2 = pd.DataFrame({'Col1':['2780989','2780749','2.81625e+06']}) 

pd.merge(df1.astype(float),df2.astype(float), on='Col1') 

出力:この数字は、あなたのコンソールに出力され

 Col1 
0 2780989.0 
1 2780749.0 
2 2816250.0 
関連する問題