从Excel文件中读取所需类型的熊猫

时间:2018-11-21 19:52:31

标签: python 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而不是作为元组的列表。 当我df['List of Tuples'].iat[0].decode('iso-8859-1').encode('utf-8')时,我得到string: "[('Physics', 90)]" 我想将其作为元组列表[('Physics', 90)]而不是字符串或unicode进行读取/转换。简而言之,我想摆脱每个条目周围的双引号,并将其读取为[('Physics', 90)]和{{1} }等。

1 个答案:

答案 0 :(得分:0)

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

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

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

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