首页 > 解决方案 > 如何从 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 列表的列表?

标签: pythonpandas

解决方案


您可以尝试将字符串转换为列表:

cell = eval('[[2 3]\n[3 4]\n[4 5]]'.replace('\n',' ').replace(' ',','))

结果:

[[2, 3], [3, 4], [4, 5]]

首选方法是使用literal_evalfrom ast

from ast import literal_eval
cell = literal_eval('[[2 3]\n[3 4]\n[4 5]]'.replace('\n',' ').replace(' ',','))

结果与上面相同,但方法优于eval,因为它可以安全地评估包含来自不受信任来源的值的字符串,而无需手动解析值。


推荐阅读