为了账号安全,请及时绑定邮箱和手机立即绑定

如何在不更改数字类型的情况下从 excel 创建列表/数组?

如何在不更改数字类型的情况下从 excel 创建列表/数组?

慕仙森 2022-05-24 12:42:19
我正在尝试创建一个列表以处理我得到的值,但是,当我使用nums=pd.read_excel(excel, header=None)  进而nums=np.asarray(nums)每个值的类型变成 numpy.float64,所以每当我尝试过滤一个值时,基于它是一个浮点数的事实,这些值都不会被计算在内。有没有一种方法可以从 excel 中的列创建列表/数组,并且值类型不会改变,它实际上被读取为常规浮点数?(我尝试在我的过滤器中包含类型 numpy.float64,但问题是它包含来自 excel 的整数,我不应该使用它,所以它不起作用)任何帮助,谢谢!编辑1:print(nums):        00    1.001    2.002    3.003    4.004    5.005    6.006    7.007    8.008    9.009   10.0010   3.3011   3.22我的预期输出将是 1,2,3 等(int 类型,而不是它们转换为的 numpy.float64)<class 'numpy.float64'>编辑 2:如果我要打印 np.asarray(nums) 它看起来像这样: [[ 1.  ] [ 2.  ] [ 3.  ] [ 4.  ] [ 5.  ] [ 6.  ] [ 7.  ] [ 8.  ] [ 9.  ] [10.  ] [ 3.3 ] [ 3.22]]
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

您的问题的解决方案比您的建议更直接。


Numpy 允许您询问浮点数(或 float64)是否为整数:


import numpy as np


a_row = np.array([1,2,3,4,5,3.3])

a_column = a_row.reshape(6,1)


print(a_row[4].is_integer())

print(a_row[5].is_integer())

print(a_column[4][0].is_integer())

print(a_column[5][0].is_integer())

结果:


True

False

True

False


查看完整回答
反对 回复 2022-05-24
?
慕村225694

TA贡献1880条经验 获得超4个赞

尝试使用pandas.read_excel,将您需要的数据类型传递给dtype参数,例如:

{'a': np.float64, 'b': np.int32}

converters参数(提供可调用的字典以将特定值转换为您需要的类型)。


查看完整回答
反对 回复 2022-05-24
  • 2 回答
  • 0 关注
  • 75 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信