如何将带有列表的字典解包到数据框中?

问题描述 投票:0回答:1

我有一个从循环生成的字典,看起来像这样:

dict_items([('cm_Classification0.1', [FP    16
TP    13
TN     1
Name: cm_Classification0.1, dtype: int64]), ('cm_Classification0.2', [TP    13
FP    12
TN     5
Name: cm_Classification0.2, dtype: int64]), ('cm_Classification0.3', [TP    12
FP    10
TN     7
FN     1
Name: cm_Classification0.3, dtype: int64]), ('cm_Classification0.4', [TP    11
TN     9
FP     8
FN     2
Name: cm_Classification0.4, dtype: int64]), ('cm_Classification0.5', [TN    11
TP     9
FP     6
FN     4
Name: cm_Classification0.5, dtype: int64]), ('cm_Classification0.6', [TN    13
TP     8
FN     5
FP     4
Name: cm_Classification0.6, dtype: int64]), ('cm_Classification0.7', [TN    15
FN     7
TP     6
FP     2
Name: cm_Classification0.7, dtype: int64]), ('cm_Classification0.8', [TN    16
FN     9
TP     4
FP     1
Name: cm_Classification0.8, dtype: int64]), ('cm_Classification0.9', [TN    17
FN    12
TP     1
Name: cm_Classification0.9, dtype: int64])])

我需要一个方法来弄清楚如何将其放入数据列,其中包含以下几列:cm_Classification#FNFPTPTN。我已经尝试过此pd.DataFrame(list(values.items())),但它会给我返回一个数据框,其中一列的名称,然后在下一列中返回每个整数的列表。

如果有帮助,这里是生成字典的循环:

classification_columns = question_two_partc.columns[3:12]
values = {column: list() for column in classification_columns}

for column in question_two_partc[classification_columns]:
    values[column].append(question_two_partc[column].value_counts())

有人可以帮我吗?对不起,一团糟!让我知道是否有其他有用的信息!

pandas data-manipulation
1个回答
0
投票

我认为您需要选择列表的第一个值和pd.concat

df = (pd.concat({k: v[0] for k, v in values.items()})
        .rename_axis(('A','B'))
        .reset_index(name='C'))
© www.soinside.com 2019 - 2024. All rights reserved.