2017-07-05 77 views
0

我最近开始面临这个问题,其中列中的几个值都是指数形式,其余都是常规数字。Python熊猫 - 数据框中的数字列在指数中

我想要合并两列,但它不产生任何结果的指数形式。我想怎样才能克服这个问题来合并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,但如果它在第二位,它将开始显示如上所述的值。

+0

这个号码印到控制台的方式无关,与它们的内部表示形式为IEEE浮点数字。 – MaxNoe

+0

注意'2.81625e + 06'不等于'2816256'。你的预期产出是多少? – Michael

+0

嗨迈克尔,是的,这些是不相等的,但即使在我的DF值是相等的,它不与其他df –

回答

0

让我们都转换dataframes浮动:

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