如何将串行输出的结果转换回数据帧?

时间:2018-09-17 21:29:40

标签: pandas

我想将一系列结果输出转换回数据框,以便进行进一步的分析。这是我的数据

import random
import pandas as pd

random.seed(100)
datadict = {"AB" : ["A", "B"]*6, "CDE" : ["C", "D", "E"]*4, "1234": 
[random.randint(1,5) for x in range(12)], "value": 
[random.randrange(1,100) for x in range(12)]}
df = pd.DataFrame(datadict)

df.groupby(["AB", "CDE", "1234"]).value.mean()

现在,我得到了系列结果

AB  CDE  1234
A   C    2       95
         4       27
    D    1       99
         4       85
    E    1       30
         4       34
B   C    2        7
         5       40
    D    4       59
         5       43
    E    1       27
         3       83

现在,我想将此结果转换回数据框,以便数据看起来像这样

AB  CDE  1234  mean
A   C    2       95
A   C    4       27
A   D    1       99
A   D    4       85
A   E    1       30
A   E    4       34
B   C    2        7
B   C    5       40
B   D    4       59
B   D    5       43
B   E    1       27
B   E    3       83

这样,我可以做进一步的分析。谁能告诉我该怎么做?

1 个答案:

答案 0 :(得分:1)

您可以使用df.reset_index()。这样会添加一个新的整数索引,如下所示:

   AB CDE  1234  value
0   A   C     1   94.0
1   A   C     5   19.0
2   A   D     1   21.0
3   A   D     4   21.0
4   A   E     1   63.0
5   A   E     4   31.0
6   B   C     3   96.0
7   B   C     4   77.0
8   B   D     3   34.5
9   B   E     3   18.0
10  B   E     5   95.0