如何在不更改数字类型的情况下从 excel 创建 list/array?
How to create a list/array from an excel, without changing the number type?
我试图创建一个列表来处理我得到的值,但是,当我使用
nums=pd.read_excel(excel, header=None)
然后
nums=np.asarray(nums)
每个值的类型变为 numpy.float64,因此每当我尝试过滤一个值时,基于它是一个浮点数这一事实,这些值都不会被计算在内。有没有一种方法可以从 excel 中的列创建 list/array 并且值类型不会更改并且它实际上被读取为常规浮点数?
(我试过在我的过滤器中包含 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]]
尝试使用 pandas.read_excel,将您需要的数据类型传递给 dtype
参数,例如:
{'a': np.float64, 'b': np.int32}
或 converters
参数(提供可调用项的字典以将特定值转换为您需要的类型)。
您的问题的解决方案比您建议的更直接。
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
我试图创建一个列表来处理我得到的值,但是,当我使用
nums=pd.read_excel(excel, header=None)
然后
nums=np.asarray(nums)
每个值的类型变为 numpy.float64,因此每当我尝试过滤一个值时,基于它是一个浮点数这一事实,这些值都不会被计算在内。有没有一种方法可以从 excel 中的列创建 list/array 并且值类型不会更改并且它实际上被读取为常规浮点数? (我试过在我的过滤器中包含 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]]
尝试使用 pandas.read_excel,将您需要的数据类型传递给 dtype
参数,例如:
{'a': np.float64, 'b': np.int32}
或 converters
参数(提供可调用项的字典以将特定值转换为您需要的类型)。
您的问题的解决方案比您建议的更直接。
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