python - pandas.read_csv 将十进制零填充浮点列转换为 int
问题描述
我将 Pandas DataFrame 存储在 .csv 文件中,该文件有一列包含整数数据,但由于遗留原因,数据库系统将其视为浮点数,因此 .csv 也需要将其存储为浮点数。与 一起存储时df.to_csv
,它保留零填充的小数部分,因此 .csv 文件中的列如下:
IntNumber
3.0
45.0
123.0
...
但是当我用 加载它时pandas.from_csv
,它会推断出类型,int64
尽管尾随零。我查看了pandas.read_csv文档,看起来我可以手动将数据类型指定为float64
,但我认为有多个实例需要检测为float
而不是int64
. 当出现尾随零时,让它自动推断类型为浮点数会很有用,这可能吗?
我如何加载 csv 的片段,此时它推断出列的类型dataframe
为int64
dataframe = pandas.read_csv("<csv_name>", index_col=0, parse_dates=True)
解决方案
我无法复制您的问题,请参见下面的示例。
from io import StringIO
import pandas as pd
mystr = StringIO("""IntNumber
3.0
45.0
123.0""")
df = pd.read_csv(mystr)
#pandas 0.19.2, python 3.6.0
print(df.dtypes)
IntNumber float64
dtype: object
#pandas 0.23.1, python 3.6.4
print(df.dtypes)
IntNumber float64
dtype: object
推荐阅读
- javascript - 在这个 for/of 循环中,什么是传统 IE11 for 循环的等价物?
- apache-spark - 尽管缓存了输入 df,但 Spark 流式传输性能问题
- variables - Ansible:在另一个变量声明中使用一个变量
- html - Css 首字母解决方法
- javascript - 扩展反应组件和附加类
- php - Goole App Engine - 部署的 PHP 应用程序无法识别 php 文件
- python - Python 导入和包:__init__.py 文件未修复 ModuleNotFoundError?
- javascript - 为什么 angular cli --outputHashing=all 不处理 svg 图像?
- java - 如何在 org.slf4j 中为版本启用日志记录:Spring boot 中的“2.0.0-alpha1”
- python - 从 JSON 输出中选择数据以在 Python 中插入语句