python - 从所需类型的 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)]
。
解决方案
您可能会发现将这些解析为 python 对象很有用,使用ast
它可以将字符串表示形式转换回 python 对象。尝试以下操作(我无法完全复制,因为我没有您的数据):
import ast
df['transformed_tuples'] = df['List of Tuples'].apply(ast.literal_eval)
为了避免这种情况发生,您可能会考虑您选择读取/写入的文件格式,例如 pickle 将保留原始信息(我假设这来自已保存到 excel 的 pandas DataFrame)。
您还可以考虑一个表格模式,其中没有这种不规则数据类型,从长远来看,它可能会被证明更加稳定和有效。
推荐阅读
- sql-server - 查询优化(IN 与等于)
- firebase - firebase 的 can firestore 和 cloud storage 有什么区别?
- java - 将集合转换为 JSON 并使用 mqtt 发送
- security - RSA JWT 密钥轮换周期?
- node.js - Ionic:error spawn "C:\Program Files\nodejs\node.exe" ENOENT
- node.js - Error using actions-on-google Carousel or List with dialogflow's WebhookClient
- restlet - 如何在restlet框架中检查调用资源的客户端的地址(域、端口、模式)?
- javascript - 一半的 JavaScript 不会在嵌套的 if 语句中执行
- powershell - 加载附加文件 (ps1) 以在 PowerShell 模块中使用
- javascript - yield 是异步函数中的保留关键字错误