如何将DataFrame中字符串格式的元组列表转为嵌套列表
解决方案
要将DataFrame中存储为字符串格式的元组列表转换为扁平的嵌套列表,可以通过以下步骤实现:
- 导入依赖库:需要用到
pandas读取CSV,以及ast模块安全解析字符串形式的Python对象。 - 解析字符串为实际数据结构:使用
ast.literal_eval将每个单元格的字符串转换为真实的元组列表。 - 展开并转换格式:将所有元组列表展开,同时把每个元组转换为列表。
完整代码示例
import pandas as pd import ast # 读取CSV文件 df = pd.read_csv('filename') # 一行式实现转换 list_of_lists = [list(tpl) for sublist in df['column_name'].apply(ast.literal_eval) for tpl in sublist]
代码说明
df['column_name'].apply(ast.literal_eval):遍历目标列的每个字符串,将其解析为Python原生的元组列表(如[(123,456), (789,101)]),而非字符串类型。- 嵌套列表推导
[list(tpl) for sublist ... for tpl in sublist]:先遍历解析后的每个子列表,再遍历子列表中的每个元组,将元组转换为列表后收集到最终的大列表中。
结果验证
针对示例输入的CSV数据,运行代码后会得到:
[[123, 456], [789, 101], [321, 654], [198, 765], [432, 213], [856, 987]]
内容的提问来源于stack exchange,提问作者sqlquestions
相关产品推荐
相关产品推荐

