Python 重新索引层次索引数据帧的子级
我有一个层次索引框架。“句子id”是“单词id”的父索引,“单词id”是指句子中单词的索引Python 重新索引层次索引数据帧的子级,python,pandas,dataframe,Python,Pandas,Dataframe,我有一个层次索引框架。“句子id”是“单词id”的父索引,“单词id”是指句子中单词的索引 >>> df pos word sentence_id word_id 1 2 NNP Red 3 NN List 4 IN of
>>> df
pos word
sentence_id word_id
1 2 NNP Red
3 NN List
4 IN of
5 NNP Threatened
6 NNP Species
在每个句子中,单词_id应该是连续的整数0,1,2,3,。。。但事实并非如此,因为有些词是从句子中删掉的。如何使用df.reindex重新索引每个句子中的子索引“word\u id”,而不修改“句子id”?
i、 e.上面的数据框如何变成:
>>> df
pos word
sentence_id word_id
1 0 NNP Red
1 NN List
2 IN of
3 NNP Threatened
4 NNP Species
我尝试的是:
我尝试了df.reindex(),但是“word\u id”没有任何变化
>>> df.reindex()
pos word
sentence_id word_id
1 2 NNP Red
3 NN List
4 IN of
5 NNP Threatened
6 NNP Species
为索引级别为0的每组创建具有计数的新列,并替换索引级别1
df = df.reset_index(level=1, drop=True)
df['word_id'] = df.groupby(level='sentence_id').cumcount()
df.set_index('word_id', append=True)
pos word
sentence_id word_id
1 0 NNP Red
1 NN List
2 IN of
3 NNP Threatened
4 NNP Species
为索引级别为0的每组创建具有计数的新列,并替换索引级别1
df = df.reset_index(level=1, drop=True)
df['word_id'] = df.groupby(level='sentence_id').cumcount()
df.set_index('word_id', append=True)
pos word
sentence_id word_id
1 0 NNP Red
1 NN List
2 IN of
3 NNP Threatened
4 NNP Species