Pandas 如何在连接两个字符串列时避免使用指数表示法
我有一个数据帧Pandas 如何在连接两个字符串列时避免使用指数表示法,pandas,Pandas,我有一个数据帧 $ dfoffers.head(1) FVID vnum 0 1000373197012497808 2 $ dfoffers.dtypes $ FVID int64 vnum int64 dtype: object 目标是将fVID中的长字符串和vnum中的短字符串连接到一个新列中 我这样做: dfoffers['FVID'] = dfoffers['FVID'].astype(str) d
$ dfoffers.head(1)
FVID vnum
0 1000373197012497808 2
$ dfoffers.dtypes
$
FVID int64
vnum int64
dtype: object
目标是将fVID中的长字符串和vnum中的短字符串连接到一个新列中
我这样做:
dfoffers['FVID'] = dfoffers['FVID'].astype(str)
dfoffers['vnum'] = dfoffers['vnum'].astype(str)
dfoffers['combo'] = df.FVID.astype(str).str.cat(df.vnum.astype(str), sep='')
dfoffers['combo'] = dfoffers['combo'].astype(str)
令我惊讶的是,结果是:
$ dfoffers.head(1)
FVID vnum combo
0 1000373197012497808 2 1.0003415817309268e+181.0
如何将文本“2”添加到长FVID的末尾并显示新字符串而不使用指数表示法 试试看:
dfoffers['combo'] = dfoffers['FVID'].map(str) + dfoffers['vnum']
你的代码在我这边运行得很好FVID的数据类型是什么?我很确定这是基于你的结果。所以这里发生的事情是,当你转换为str时,你只需要得到浮点表示。你可以通过在执行字符串concat之前转换为int或舍入来解决,尽管转换为int可能会导致精度损失(或类似的结果)。但连接至少会像预期的那样起作用