我正在使用包含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} }等。
答案 0 :(得分:0)
您可能会发现使用ast
将其解析为python对象很有用,它可以将字符串表示形式转换回python对象。尝试执行以下操作(由于没有您的数据,我无法完全复制):
import ast
df['transformed_tuples'] = df['List of Tuples'].apply(ast.literal_eval)
为避免这种情况的发生,您可以考虑选择读取/写入的文件格式,例如pickle将保留原始信息(我假设这是来自已保存到其中的pandas DataFrame优秀)。
您可能还会考虑其中没有这种不规则数据类型的表格模式,从长远来看,它可能会被证明更加稳定和有效。