【发布时间】:2016-09-10 06:53:26
【问题描述】:
Python 标准库或 scipy/numpy/pandas 等是否支持从分隔文件(例如 TSV 或 CSV)读取和写入浮点数的十六进制表示(又名“hexfloats”)?
作为测试,我制作了一个 CSV 文件,其中列在十进制和十六进制浮点数之间交替,并尝试使用 pandas.read_csv 读取此文件。在生成的数据框中,包含十进制浮点数的列被正确转换为 Python 浮点数,而包含十六进制浮点数的列被保留为字符串。
编辑:澄清:我不需要帮助将 hexfloats 转换为浮点数,反之亦然。有float.fromhex 和float.hex。我正在寻找的是一个文件阅读器,它将应用合理的启发式方法来自动将 hexfloats 转换为浮点数(就像pandas.read_csv 知道将数字的十进制表示转换为数字 Python 对象一样)。
【问题讨论】:
-
这样的文件中的分隔符是什么?
-
@hpaulj:任何不干扰数据的内容:逗号、制表符、US 等
-
有没有可以使用的
%格式?例如%???%12.23`? -
我从未见过这样的文件格式。一个要么有一个二进制文件,如果需要,带有一个描述格式的标题,或者你需要一个分隔符,因为数字(作为字符串)的长度与它的值无关。
-
“就像 csv.reader 知道将数字的十进制表示形式转换为数字 Python 对象一样” - 你的意思是 not converting them 那么? csvreader 在 hex 浮点数和 ints 上的表现一样好 :)
标签: python csv numpy pandas scipy