python - 如何在不更改数字类型的情况下从 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]]
解决方案
尝试使用pandas.read_excel,将您需要的数据类型传递给dtype
参数,例如:
{'a': np.float64, 'b': np.int32}
或converters
参数(提供可调用的字典以将特定值转换为您需要的类型)。
推荐阅读
- excel - 使用找到的行单元格和找到的列单元格查找单元格
- flutter - 为什么在 Flutter 中使用 onGenerateRoute() 与 ModalRoute.of()?
- php - PHP中Prepared SQL语句的执行方法出错?
- python - 为什么我收到 TypeError: 'int' object is not iterable?
- apache - 如何将端口 8080、8000 上的调用重写为端口 80
- node.js - Fargate 返回预签名 S3 URL 的根域 - 节点
- node.js - How to correct IISNode HTTP 500 substatus 1002 process request error
- python - 如何使用 Python 将 Visual FoxPro 数据库导出到其他数据库?
- javascript - 为什么我的“mapDispatchToProps”找不到我的动作函数?
- docker - 我想使用一些从 ubuntu 到 alpine 的包