python - 如何从 Pandas 的 Excel 工作表中读取单列中的浮点列表?
问题描述
我有一个类似以下 .xlsx 格式的结构(用 pandas .to_xlsx() 函数编写)
|---------------------|------------------|
| A | B |
|---------------------|------------------|
| [[2 3] [3 4] [4 5]] | 34 |
|---------------------|------------------|
当我使用 阅读此内容时df = pd.read_xlsx()
,这df['A']
是一个字符串 -'[[2 3]\n[3 4]\n[4 5]]'
有没有办法将它读取为 int 或 float 列表的列表?
解决方案
您可以尝试将字符串转换为列表:
cell = eval('[[2 3]\n[3 4]\n[4 5]]'.replace('\n',' ').replace(' ',','))
结果:
[[2, 3], [3, 4], [4, 5]]
首选方法是使用literal_eval
from ast
:
from ast import literal_eval
cell = literal_eval('[[2 3]\n[3 4]\n[4 5]]'.replace('\n',' ').replace(' ',','))
结果与上面相同,但方法优于eval
,因为它可以安全地评估包含来自不受信任来源的值的字符串,而无需手动解析值。
推荐阅读
- node.js - 授权GAE服务器访问Cloud SQL Instance
- java - 如何通过命令提示符安装java
- rest - Restsharp 比 HTTPClient 好在哪里?
- node.js - nodejs app exited with code 0 when docker-compose up
- java - How to implement Parcelable
- c++ - Does any of current C++ compilers ever emit "rep movsb/w/d"?
- kubernetes - GKE Kubernetes 持久卷
- javascript - How I can use a WebSocket connection with Socket.io events and a Koa rest api?
- c# - 更新文档中的对象时,它会转换为字符串
- ruby - Process Jekyll content to replace first occurrence of any post title with a hyperlink of the post with that title