如何将含键值对的嵌套列表转换为Python的Pandas DataFrame?
生成对齐列的DataFrame解决方法
给定嵌套列表a,每个子列表元素为「列名=值」格式的字符串,直接用pd.DataFrame(a)会因缺失值导致列混乱,需生成包含id、value1、value2三列且缺失值显示为NaN的DataFrame,可按以下步骤处理:
解决方案代码
import pandas as pd a = [["id = abc12", "value1=2.3", "value2=3.4"],["id = abcd4", "value1=4.6", "value2=3.45"], ["id = abr42", "value1=6.2", "value2=6.1"], ["id = abyt5", "value2=1.06"], ["id = abndf1", "value1=3.21", "value2=8.65"],["id = abuz2", "value1=0.9", "value2=6.89"]] # 将每个子列表转换为键值对字典 processed_rows = [] for row in a: row_data = {} for item in row: # 分割列名与值,去除多余空格 key, value = item.split('=') key = key.strip() value = value.strip() # 自动转换数值列类型 if key in ('value1', 'value2'): value = float(value) row_data[key] = value processed_rows.append(row_data) # 生成标准DataFrame result_df = pd.DataFrame(processed_rows) print(result_df)
输出结果
id value1 value2 0 abc12 2.30 3.40 1 abcd4 4.60 3.45 2 abr42 6.20 6.10 3 abyt5 NaN 1.06 4 abndf1 3.21 8.65 5 abuz2 0.90 6.89
说明
- 核心思路是将每个子列表转为字典,利用字典的键对应列名,缺失的键会被pandas自动填充为
NaN(即需求中的null/na); - 额外处理了数值类型转换,避免
value1和value2以字符串形式存储,保证数据类型正确。
内容的提问来源于stack exchange,提问作者Ussu20
相关产品推荐
相关产品推荐

