python - 重新格式化 pandas 表 - 我想要一个支点吗?
问题描述
我敢肯定这很简单,但我的大脑被冻结了,还有很多不同的pivot
的transpose
方法。在这个阶段有一个提示会很好。
我有这个数据框:
我要这个:
我知道如何到达这里,如果这有帮助,但我不确定它是否有用
仅供参考 - 实际数据有更多列,我需要根据“站点”列将这四个分开,重新格式化所有内容,计算一些百分比,将这些部分重新组合在一起,最终得到如下结果:
我希望如果我能走上正确的轨道重新格式化部分数据,我可以重复这个过程......
(然后我需要弄清楚如何运行卡方检验,但那是以后... :-(
解决方案
最简单的解决方案是df.stack
:
df = pd.DataFrame({'MIC-m': [138, 3, 22, 45],
'MIC-t': [34, 90, 30, 53],
'MIC-q': [73, 13, 53, 68],
'Total': [229, 229, 229, 229]}, index=['H', 'L', 'M', 'X'])
# Drop total, because we need sum of columns, not rows
df.drop(columns='Total', inplace=True)
# Get final result
df = pd.DataFrame(df.append(df.sum().rename('Total')).T.stack(), columns=['count'])
产量:
count
MIC-m H 138
L 3
M 22
X 45
Total 208
MIC-t H 34
L 90
M 30
X 53
Total 207
MIC-q H 73
L 13
M 53
X 68
Total 207
推荐阅读
- sql - 如何在 Postgres 的分区表中搜索?
- raspbian - 使用 Raspian Buster 编写文件
- node.js - 无法构建角度通用服务器,请帮助我
- r - 本地化健身环境
- javascript - Vue 表单输入类型不会在状态更改和方法调用时重新呈现
- python - Tensorflow 图节点是交换的
- javascript - Firebase 应用程序在我的使用 vuejs 的 signInWithEmailAndPassword 方法中无法识别第一个参数“电子邮件”的错误
- php - 如何将特定的单元格值导入 Laravel excel 中的模型
- python-3.x - 用 beautifulsoup 解析表
- html - 我正在尝试将占位符放在输入字段的边框中