我有一个包含大量频率计数的数据帧,其中列标签是要计算的要素,行标签是要在其中统计要素的页面。我需要找到每个功能出现在所有页面上的可能性,因此我尝试遍历每列,将每个总和除以所有列的总和,然后将结果保存在字典中作为与键相对应的值,则尝试失败从列标签中获取。
我的数据框看起来像这样:
|---------|----------|
| 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)
,但命令从未完成。我不确定我的代码是否做错了什么,或者我的笔记本电脑是否根本无法处理数据集的大小。
有人能指出我正确的方向吗?
答案 0 :(得分:1)
您似乎可以将每一列的总和取而后除以DF中整个基础数组的总和的展平值,例如:
df.sum().div(df.values.sum()).to_dict()
那会给你:
{'Word1': 0.5172413793103449, 'Word2': 0.4827586206896552}