我在熊猫数据框中有一个重复索引值的索引。我想重新索引为将重复索引分组的多索引。
索引看起来像这样:
所以我希望所有112335586索引值都归入同一索引中。
我已经看过这个问题Create pandas dataframe by repeating one row with new multiindex,但是在这里可以预定义index的值,但这是不可能的,因为我的数据框太大而无法进行硬编码。
我也查看了多索引文档,但这也预定义了索引的值。
答案 0 :(得分:1)
我相信您需要:
s = pd.Series([1,2,3,4], index=[10,10,20,20])
s.index.name = 'EVENT_ID'
print (s)
EVENT_ID
10 1
10 2
20 3
20 4
dtype: int64
s1 = s.index.to_series()
s2 = s1.groupby(s1).cumcount()
s.index = [s.index, s2]
print (s)
EVENT_ID
10 0 1
1 2
20 0 3
1 4
dtype: int64
答案 1 :(得分:0)
尝试一下:
df.reset_index(inplace=True)
df['sub_idx'] = df.groupby('EVENT_ID').cumcount()
df.set_index(['EVENT_ID','sub_idx'], inplace=True)