Python 如何替换数据帧中的索引

Python 如何替换数据帧中的索引,python,pandas,indexing,Python,Pandas,Indexing,我有一个数据框,如下所示: df = pd.DataFrame({'year': [2010, 2011, 2012, 2015,2016,2017], 'sales': [10, 12, 13, 9, 11,7], 'Groups': ['AA', 'BB', 'AA', 'AA', 'CC', 'CC']}) 我试图做的是用一个整数索引值映射“Groups”列,以便相同的组成员分配相同的索引号。像这样阴沉的: Ind

我有一个数据框,如下所示:

df = pd.DataFrame({'year': [2010, 2011, 2012, 2015,2016,2017],
                 'sales': [10, 12, 13, 9, 11,7],
                   'Groups': ['AA', 'BB', 'AA', 'AA', 'CC', 'CC']}) 
我试图做的是用一个整数索引值映射“Groups”列,以便相同的组成员分配相同的索引号。像这样阴沉的:

Index year  sales Groups
1     2010     10     AA
2     2011     12     BB
1     2012     13     AA
1     2015      9     AA
3     2016     11     CC
3     2017      7     CC
Index year  sales Groups
1     2010     10     AA
2     2011     12     BB
1     2012     13     AA
1     2015      9     AA
3     2016     11     CC
3     2017      7     CC
我曾考虑使用set_索引,但不确定这是否是正确的方法

我试图做的是用索引值映射“Groups”列,以便相同的组成员分配相同的索引号。大概是这样的:

Index year  sales Groups
1     2010     10     AA
2     2011     12     BB
1     2012     13     AA
1     2015      9     AA
3     2016     11     CC
3     2017      7     CC
Index year  sales Groups
1     2010     10     AA
2     2011     12     BB
1     2012     13     AA
1     2015      9     AA
3     2016     11     CC
3     2017      7     CC

感谢您的帮助。

使用
ngroup

df.index=df.groupby('Groups').ngroup()+1
factorize
cat.code

df.index=pd.factorize(df.Groups)[0]+1

df.index=df.Groups.astype('category').cat.codes+1

你不先分类有什么原因吗

或者您可以尝试以下方法:

df = df.sort_values('Groups')
df['index'] = df['Groups'].rank(method='dense')
它将对您的组进行排序,并对它们进行适当的索引