如何将嵌套字典转换为指定格式pandas DataFrame且自动生成索引
解决方案
你可以直接通过字典推导式将每列的嵌套列表转为普通字典,再传入pandas的DataFrame构造函数即可,一行代码就能得到目标结果:
import pandas as pd dico_test = {'BC1': [['name1', 14],['name2', 10]], 'BC2': [['name1', 2],['name2', 3],['name3', 1]]} result_df = pd.DataFrame({col: dict(val_list) for col, val_list in dico_test.items()})
代码说明
dict(val_list)会直接把[[name1, x], [name2, y]]这种格式的嵌套列表转为{name1:x, name2:y}格式的字典- pandas构建DataFrame时会自动对齐所有列字典的键(也就是各个name值)作为行索引,缺失值自动填充
NaN,不需要手动提取索引也不需要循环处理 - 最终得到的
result_df和你期望的格式完全一致:
BC1 BC2 name1 14.0 2 name2 10.0 3 name3 NaN 1
如果需要调整BC1列的数值类型为整数(去除小数尾缀),可以再加一步result_df['BC1'] = result_df['BC1'].astype('Int64')即可。
内容的提问来源于stack exchange,提问作者Elysire
相关产品推荐
相关产品推荐

