首页 > 解决方案 > 从所需类型的 excel 文件 pandas 中读取

问题描述

我正在使用包含 2 列的熊猫读取 excel 文件:df

EID      List of Tuples
 1       [('Physics', 90)]
 2       [('Physics', 80), ('Math', 70)]
 3       [('Physics', 60, ('Math', 25))]

当我检查df['List of Tuples'].iat[0]它给我u"[('Physics', 90)]" 时,我将其作为 unicode 而不是作为元组列表来获取。当 I 时df['List of Tuples'].iat[0].decode('iso-8859-1').encode('utf-8'),我string: "[('Physics', 90)]" 想将其读取/转换为元组列表[('Physics', 90)]而不是字符串或 unicode。简而言之,我想摆脱每个条目周围的双引号并将其读取为[('Physics', 90)]等等 [('Physics', 80), ('Math', 70)]

标签: pythonpandas

解决方案


您可能会发现将这些解析为 python 对象很有用,使用ast它可以将字符串表示形式转换回 python 对象。尝试以下操作(我无法完全复制,因为我没有您的数据):

import ast
df['transformed_tuples'] = df['List of Tuples'].apply(ast.literal_eval)

为了避免这种情况发生,您可能会考虑您选择读取/写入的文件格式,例如 pickle 将保留原始信息(我假设这来自已保存到 excel 的 pandas DataFrame)。

您还可以考虑一个表格模式,其中没有这种不规则数据类型,从长远来看,它可能会被证明更加稳定和有效。


推荐阅读