将键作为行名并将值中的字典作为列将嵌套字典转换为数据框?

时间:2020-01-26 18:40:08

标签: python pandas

我有一个包含大量频率计数的数据帧,其中列标签是要计算的要素,行标签是要在其中统计要素的页面。我需要找到每个功能出现在所有页面上的可能性,因此我尝试遍历每列,将每个总和除以所有列的总和,然后将结果保存在字典中作为与键相对应的值,则尝试失败从列标签中获取。

我的数据框看起来像这样:

    |---------|----------|
    | Word1   | Word2    | 
----|---------|----------|
pg1 |    0    |     1    |
----|---------|----------|
pg2 |    3    |     2    |
----|---------|----------|
pg3 |    9    |     0    |
----|---------|----------|
pg4 |    1    |     6    |
----|---------|----------|
pg5 |    2    |     3    |
----|---------|----------|
pg6 |    0    |     2    |
----|---------|----------|

我希望我的输出是一个字典,以单词作为键,以sum(column)/ sum(table)作为值,

{ Word1: .517 ,  Word2: .483 }

到目前为止,我已经尝试了以下操作:

dict = {}
for x in df.sum(axis = 0):
    dict[x] = x / sum(df.sum(axis = 0))
print(dict)

,但命令从未完成。我不确定我的代码是否做错了什么,或者我的笔记本电脑是否根本无法处理数据集的大小。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

您似乎可以将每一列的总和取而后除以DF中整个基础数组的总和的展平值,例如:

df.sum().div(df.values.sum()).to_dict()

那会给你:

{'Word1': 0.5172413793103449, 'Word2': 0.4827586206896552}
相关问题