python - 将嵌套字典转换为数据框,键作为行名,值中的字典作为列?
问题描述
我有一个包含大量频率计数的数据框,其中列标签是正在计算的特征,而行标签是正在计算特征的页面。我需要找到每个功能在所有页面中出现的概率,所以我尝试遍历每一列,将每个总和除以所有列的总和,并将结果保存在字典中作为与键对应的值这是取自列标签。
我的数据框看起来像这样:
|---------|----------|
| 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)
但命令永远不会完成。我不确定我的代码是否做错了,或者我的笔记本电脑是否根本没有能力处理我的数据集的大小。
谁能指出我正确的方向?
解决方案
看起来您可以取每列的总和,然后除以 DF 中整个基础数组的总和的展平值,例如:
df.sum().div(df.values.sum()).to_dict()
这会给你:
{'Word1': 0.5172413793103449, 'Word2': 0.4827586206896552}
推荐阅读
- next.js - Next js - 使用动态 URL 重新加载
- java - 在for循环中将对象添加到arraylist,但for循环完成后arraylist为空?
- css - @Font-face CSS 规则在 Firefix 68.0.1 中不起作用
- excel - 删除多个图表的图表名称、轴、图例、网格线
- c++ - 矩形()抛出错误,表示没有匹配的函数调用
- r - 根据R中的条件乘以和替换数据框中的值
- git - 使用 Ubuntu 设置 Github SSH 密钥:将密钥提取到 Github,但在推送时仍然要求输入用户名和密码
- android - 如何从edittext获取整数并使用kotlin将它们相乘
- flutter - Flutter - 每个用户的firestore
- javascript - drawImage 将颜色保持在高档,但不保持在低档