首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Pandas将int值转换为dataframe中的浮点数

Pandas将int值转换为dataframe中的浮点数
EN

Stack Overflow用户
提问于 2017-02-20 20:30:25
回答 1查看 4.8K关注 0票数 5

我编写了一个脚本,该脚本接受csv文件作为输入,使用pandas操作数据,并创建另一个csv文件。

一切正常,但是pandas默认情况下会将整数值转换为double。例如:

在csv之前:

代码语言:javascript
代码运行次数:0
运行
复制
5f684ee8-7398-914d-9d87-7b44c37ef081,France,44,72000,No,isBool("true")

在csv中执行以下操作后:

代码语言:javascript
代码运行次数:0
运行
复制
E84E685F-9873-4D91-9D87-7B44C37EF081,France,44.0,72000.0,No,True

这里44和72000更改为44.0和72000.0

我知道如何在dataframe中使用apply()将它们转换为int,但是这个脚本将是通用的,我希望首先配置pandas。

基本上,如果.0不是浮点数,我希望熊猫不会放入它。

谢谢。

EN

回答 1

Stack Overflow用户

发布于 2017-02-20 21:37:49

正如评论中所说,pandas中的一些操作可以更改dtype。有关示例this page,请参见。

解决方案可以是:

代码语言:javascript
代码运行次数:0
运行
复制
df.to_csv(float_format="%.0f")

将每个(false)浮点数舍入为整数格式。

举个例子:

代码语言:javascript
代码运行次数:0
运行
复制
In [355]: pd.DataFrame(columns=list(range(6)), 
data=[['E84E685F-9873-4D91-9D87-7B44C37EF081', 'France', 44.0, 72000, 'No', True]]
).to_csv(float_format='%.f')
Out[355]: ',0,1,2,3,4,5\n0,E84E685F-9873-4D91-9D87-7B44C37EF081,France,44,72000,No,True\n'
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42344679

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档