从头开始创建二级/内级索引

时间:2020-01-19 06:03:35

标签: python python-3.x pandas pandas-groupby

我需要从头开始创建i的新索引,然后将其用作多索引的内部索引部分。我在下面使用示例df。

#example df
df = pd.DataFrame({"a":[11,11,22,22,22,33],"b":[1,2,3,4,5,6]})

# creating the i index
df["i"]=0
def createIndex(grouped_df):
    newIndex = list(range(0, len(grouped_df.index)))
    grouped_df["i"]=newIndex
    return grouped_df
df.groupby("a").apply(createIndex)


print(df)

    a  b  i
0  11  1  0
1  11  2  0
2  22  3  0
3  22  4  0
4  22  5  0
5  33  6  0

我需要为i的每组重设a

所需的结果如下:

    a  b  i
0  11  1  0
1  11  2  1
2  22  3  0
3  22  4  1
4  22  5  2
5  33  6  0

然后我需要创建ai的多重索引

df.set_index(["a","i"], inplace=True)

1 个答案:

答案 0 :(得分:0)

cumcount

df['i']=df.groupby('a').cumcount()
df
    a  b  i
0  11  1  0
1  11  2  1
2  22  3  0
3  22  4  1
4  22  5  2
5  33  6  0