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

我正在尝试创建一个列表以处理我得到的值,但是,当我使用


nums=pd.read_excel(excel, header=None)  

进而


nums=np.asarray(nums)

每个值的类型变成 numpy.float64,所以每当我尝试过滤一个值时,基于它是一个浮点数的事实,这些值都不会被计算在内。有没有一种方法可以从 excel 中的列创建列表/数组,并且值类型不会改变,它实际上被读取为常规浮点数?(我尝试在我的过滤器中包含类型 numpy.float64,但问题是它包含来自 excel 的整数,我不应该使用它,所以它不起作用)


任何帮助,谢谢!


编辑1:


print(nums):

        0

0    1.00

1    2.00

2    3.00

3    4.00

4    5.00

5    6.00

6    7.00

7    8.00

8    9.00

9   10.00

10   3.30

11   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]]


慕仙森
浏览 76回答 2
2回答

肥皂起泡泡

您的问题的解决方案比您的建议更直接。Numpy 允许您询问浮点数(或 float64)是否为整数:import numpy as npa_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())结果:TrueFalseTrueFalse

慕村225694

尝试使用pandas.read_excel,将您需要的数据类型传递给dtype参数,例如:{'a': np.float64, 'b': np.int32}或converters参数(提供可调用的字典以将特定值转换为您需要的类型)。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python