python - 重新格式化 pandas 表 - 我需要一个数据透视表吗?

标签 python pandas datatable format

我确信这很简单,但我的大脑被卡住了,有很多不同的pivottranspose方法。在这个阶段有一个提示会很好。

我有这个数据框:

current datafame

我想要这个:

dsied dataframe

我知道如何到达这里,如果这有帮助,但我不确定是否有帮助

interim datafame

仅供引用 - 实际数据有更多列,我需要根据“站点”列将这四列分开,重新格式化所有内容,计算一些百分比,将各个部分重新组合在一起,最终得到如下结果:

final table

我希望如果我能够正确地重新格式化部分数据,我就可以重复这个过程......

(然后我需要弄清楚如何运行卡方检验,但那是稍后的事......:-(

最佳答案

最简单的解决方案是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

关于python - 重新格式化 pandas 表 - 我需要一个数据透视表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59889934/

相关文章:

javascript - Angular Material 数据表显示 [object Object]

python - 将 Pandas 数据框列转换为 np.datetime64

python - 匹配给定模式后的第二个数字

python - 服务器端 COLLADA 转换器

pandas - 如何在 Pandas 中切片连续和不连续的索引?

python-3.x - 在 matplotlib 子图中添加一行

python - pandas 读取 excel 结果为 "not a zip file"

python - 在 Python 中初始化大量 boolean 值

对象上的 Javascript 在 DataTable 行中不起作用

JQuery datatable.net (datatable.js) - 动态更改设置