在python中填写groupby之后的列中缺少的行

在python中填写groupby之后的列中缺少的行,python,pandas,group-by,mean,Python,Pandas,Group By,Mean,我有一个数据集,看起来像这样,但要大得多 Column A Column B Result 1 1 2.4 1 4 2.9 1 1 2.8 2 5 9.3 3 4 1.2 df.groupby(['Column A','Column B'])['result'].mean() Column A Column B

我有一个数据集,看起来像这样,但要大得多

Column A   Column B  Result
1          1         2.4
1          4         2.9
1          1         2.8
2          5         9.3
3          4         1.2

df.groupby(['Column A','Column B'])['result'].mean() 

Column A   Column B  Result
1          1         2.6
           4         2.9
2          5         9.3
3          4         1.2
我希望B列的范围为1-10,这些行的结果为a列和B列的平均值。因此,这是我想要的表:

Column A   Column B  Result
1          1         2.6
           2         2.75
           3         2.75
           4         2.9 
           5         6.025
2          1         5.95
           2         9.3
           3         9.3
...
希望这一点能被理解。我知道平均值是相当混乱的,所以我只能满足于能够填充所需范围的缺失值。我感谢你的帮助

您需要通过新建
索引
创建,然后通过第一级
列A
平均值
分组:

df = df.groupby(['Column A','Column B'])['Result'].mean() 
mux = pd.MultiIndex.from_product([df.index.get_level_values(0).unique(),
                                  np.arange(1,10)], names=('Column A','Column B'))
df = df.reindex(mux)
df = df.groupby(level='Column A').apply(lambda x: x.fillna(x.mean()))
print (df)
Column A  Column B
1         1           2.60
          2           2.75
          3           2.75
          4           2.90
          5           2.75
          6           2.75
          7           2.75
          8           2.75
          9           2.75
2         1           9.30
          2           9.30
          3           9.30
          4           9.30
          5           9.30
          6           9.30
          7           9.30
          8           9.30
          9           9.30
3         1           1.20
          2           1.20
          3           1.20
          4           1.20
          5           1.20
          6           1.20
          7           1.20
          8           1.20
          9           1.20
Name: Result, dtype: float64