python数据帧在将Int转换为Str时,在末尾添加了.0

python数据帧在将Int转换为Str时,在末尾添加了.0,python,string,python-3.x,pandas,dataframe,Python,String,Python 3.x,Pandas,Dataframe,打印(数据帧) 我上传到Mongo db并将其转换为Str时出错 打印(数据帧类型(str)) 将Int转换为Str时,在末尾添加.0。 如何有效地消除.0? 感谢int64使用: df['test_num'] = df['test_num'].astype('int64') #alternative #df['test_num'] = df['test_num'].astype(np.int64) print (df) Total Price test_num 0

打印(数据帧)

我上传到Mongo db并将其转换为Str时出错

打印(数据帧类型(str))

将Int转换为Str时,在末尾添加.0。 如何有效地消除.0? 感谢
int64使用:

df['test_num'] = df['test_num'].astype('int64')
#alternative
#df['test_num'] = df['test_num'].astype(np.int64)
print (df)
   Total  Price         test_num
0      0   71.7  204256000000000
1      1   39.5  204254000000000
2      2   82.2  204188000000000
3      3   42.9  204171000000000
说明

您可以检查转换后的列-它返回
float64

print (df['test_num'].dtype)
float64
转换为字符串后,它将删除指数符号并转换为
float
s,因此添加了traling
0

print (df['test_num'].astype('str'))
0    204256000000000.0
1    204254000000000.0
2    204188000000000.0
3    204171000000000.0
Name: test_num, dtype: object

如果你能提供解释,我将删除我的答案。这并不能解释问题所在。@jpp-我尝试了一下,但需要更多的时间。@jpp-我尝试了一点,但应该更好,我刚刚看到了你的答案。抱歉.df=df.apply(lambda x:x.replace('0.0',“”))
print (df['test_num'].dtype)
float64
print (df['test_num'].astype('str'))
0    204256000000000.0
1    204254000000000.0
2    204188000000000.0
3    204171000000000.0
Name: test_num, dtype: object