首页 > 解决方案 > 如何计算这种格式的数据帧的方差?

问题描述

这里我有一个简化的数据框(真实的格式相同,但只是放大了)

import pandas as pd
import numpy as np

row = (1, 2)
columns = ["x", "y", "x", "y", "x", "y", "x", "y"]
data = ([10, 2, 8, 1.5, 9, 2, 11, 1.6], [8, 3, 7.5, 2.2, 9, 2, 8.6, 2.3])

df = pd.DataFrame(data, index = row, columns = columns)

在此处输入图像描述

我想计算 1、2 的 x、y 的方差,理想的格式是

在此处输入图像描述

任何提示或帮助表示赞赏

标签: pythonpandasdataframe

解决方案


尝试这个 -

  1. Unstack 以获取 x, y 列作为索引
  2. 在水平 [x,y] 和 [1,2] 上分组并计算方差。
  3. 取消堆叠并转置以获得 [x,y] 作为列。
df.unstack().groupby(level=[0,1]).var().unstack().T
          x         y
1  1.666667  0.069167
2  0.435833  0.189167

推荐阅读