我需要从头开始创建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
然后我需要创建a
和i
的多重索引
df.set_index(["a","i"], inplace=True)
答案 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