【问题标题】:Python transpose/convert inconsistent lists into DataFramePython将不一致的列表转置/转换为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,将特定值分配给如下所示的行和列:

谢谢

【问题讨论】:

标签: python pandas dataframe


【解决方案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

【讨论】:

    猜你喜欢
    • 2023-01-14
    • 2016-12-01
    • 1970-01-01
    • 2018-03-09
    • 2019-06-24
    • 1970-01-01
    • 2022-01-07
    • 1970-01-01
    • 2022-01-23
    相关资源
    最近更新 更多