我用来xlrd从excel文件中读取数据.
对于存储在文件中的整数,比方说63,将其xlrd解释为63.0类型number.
为什么不能xlrd识别63为整数?
假设sheet.row(1)[0].value给了我们63.0.我怎样才能将它转换回来63.
Joh*_*hin 25
Excel将所有数字视为浮点数.一般来说,它并不关心是否your_number % 1 == 0.0真实.
示例:A1 = 63.0, B1 = 63, C1 = INT(A1), A2 = TYPE(A1), B2 = TYPE(B1), C2 = TYPE(C1)
您将看到TYPE()在每种情况下返回1.
从Excel帮助:
If value is TYPE returns
Number 1
Text 2
Logical value 4
Error value 16
Array 64
Run Code Online (Sandbox Code Playgroud)
xlrd报告它发现的内容.xlrd在将它暴露给你之前不会破坏它的输入.将列转换为(62.9, 63.0, 63.1, etc)对(62.9, 63, 63.1, etc)我来说似乎是毫无意义地浪费CPU时间.
jco*_*ado 12
查看文档中的不同单元格类型,似乎单元格没有任何整数类型,它们只是浮点数.因此,即使你写了一个整数,这也是你得到浮动的原因.
要将float转换为整数,只需使用int:
>>> int(63.0)
63
>>> int(sheet.row(1)[0].value)
63
Run Code Online (Sandbox Code Playgroud)
min*_*cha 11
如果excel表中的所有条目都是整数,则jcollado给出的答案是正确的.但假设你有一个浮点数,你可以随时设置检查条件,如 -
if i==int(i): //checking for the integer:
print int(i) // solving your problem and printing the integer
else:
print i //printing the float if present
Run Code Online (Sandbox Code Playgroud)
希望你觉得这个有用 :)
| 归档时间: |
|
| 查看次数: |
21046 次 |
| 最近记录: |