Python将不一致的列表转置/转换为DataFrame

Posted

技术标签:

【中文标题】Python将不一致的列表转置/转换为DataFrame【英文标题】:Python transpose/convert inconsistent lists into DataFrame 【发布时间】:2021-01-08 10:56:42 【问题描述】:

我已经解析了一个 xml 文档并得到如下值:

row_list = [0, 0, 0, 1, 1, 2, 2, 2, 2]
col_list = ['col1', 'col2', 'col3', 'col1', 'col4', 'col2', 'col3', 'col5', 'col6']
values_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

整组列由大约 100 个元素组成,如您所见,结构不一致。您能否建议如何将这些列表转换为 DataFrame,将特定值分配给如下所示的行和列:

谢谢

【问题讨论】:

这能回答你的问题吗? Convert List to Pandas Dataframe Column 这与问题完全无关@ZarakiKenpachi 不要忘记熊猫相关问题的 pandas 标签@jabba(添加) 【参考方案1】:
row_list = [0, 0, 0, 1, 1, 2, 2, 2, 2]
col_list = ['col1', 'col2', 'col3', 'col1', 'col4', 'col2', 'col3', 'col5', 'col6']
values_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]

out = 
for r, c, v in zip(row_list, col_list, values_list):
    out.setdefault(r, )[c] = v

print(pd.DataFrame('id': k, **v for k, v in out.items()).set_index('id').fillna(0))

打印:

    col1  col2  col3  col4  col5  col6
id                                    
0    1.0   2.0   3.0   0.0   0.0   0.0
1    4.0   0.0   0.0   5.0   0.0   0.0
2    0.0   6.0   7.0   0.0   8.0   9.0

【讨论】:

以上是关于Python将不一致的列表转置/转换为DataFrame的主要内容,如果未能解决你的问题,请参考以下文章

有效地将不均匀的列表列表转换为用 nan 填充的最小包含数组

使用改造将不一致的 JSON 解析为 POJO

pandas:如何将字典转换为转置数据框? [复制]

如何将不带引号的嵌套字符串字典转换为Python中的字典

将字典转换为 Python 数据框 [重复]

转置/解压缩功能(zip的倒数)?