Indexing 我想用Python获得按列分组的索引

Indexing 我想用Python获得按列分组的索引,indexing,reset,Indexing,Reset,我想用python获得按列分组的索引。相等行的索引 我有这个数据框: df = pandas.DataFrame({'Antenna':['Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne',

我想用python获得按列分组的索引。相等行的索引

我有这个数据框:

df = pandas.DataFrame({'Antenna':['Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne'], 
'Col':['Sektor', 'Sektor', 'Sektor', 'Richtung', 'Richtung', 'Richtung', 'Rifu', 'Rifu', 'Rifu', 'Richtung', 'Richtung', 'Richtung', 'Bemerkung']})

df

             Antenna        Col
0      Sektorantenne     Sektor
1      Sektorantenne     Sektor
2      Sektorantenne     Sektor
3      Sektorantenne   Richtung
4      Sektorantenne   Richtung
5      Sektorantenne   Richtung
6   Richtfunkantenne       Rifu
7   Richtfunkantenne       Rifu
8   Richtfunkantenne       Rifu
9   Richtfunkantenne   Richtung
10  Richtfunkantenne   Richtung
11  Richtfunkantenne   Richtung
12  Richtfunkantenne  Bemerkung
df_in

             Antenna        Col  Index
0      Sektorantenne     Sektor      0
1      Sektorantenne     Sektor      1
2      Sektorantenne     Sektor      2
3      Sektorantenne   Richtung      0
4      Sektorantenne   Richtung      1
5      Sektorantenne   Richtung      2
6   Richtfunkantenne       Rifu      0
7   Richtfunkantenne       Rifu      1
8   Richtfunkantenne       Rifu      2
9   Richtfunkantenne   Richtung      0
10  Richtfunkantenne   Richtung      1
11  Richtfunkantenne   Richtung      2
12  Richtfunkantenne  Bemerkung      0

# I have tried things like

df_in = df.groupby(['Antenna', 'Col']).reset_index()
我要获取此数据帧:

df = pandas.DataFrame({'Antenna':['Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Sektorantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne', 'Richtfunkantenne'], 
'Col':['Sektor', 'Sektor', 'Sektor', 'Richtung', 'Richtung', 'Richtung', 'Rifu', 'Rifu', 'Rifu', 'Richtung', 'Richtung', 'Richtung', 'Bemerkung']})

df

             Antenna        Col
0      Sektorantenne     Sektor
1      Sektorantenne     Sektor
2      Sektorantenne     Sektor
3      Sektorantenne   Richtung
4      Sektorantenne   Richtung
5      Sektorantenne   Richtung
6   Richtfunkantenne       Rifu
7   Richtfunkantenne       Rifu
8   Richtfunkantenne       Rifu
9   Richtfunkantenne   Richtung
10  Richtfunkantenne   Richtung
11  Richtfunkantenne   Richtung
12  Richtfunkantenne  Bemerkung
df_in

             Antenna        Col  Index
0      Sektorantenne     Sektor      0
1      Sektorantenne     Sektor      1
2      Sektorantenne     Sektor      2
3      Sektorantenne   Richtung      0
4      Sektorantenne   Richtung      1
5      Sektorantenne   Richtung      2
6   Richtfunkantenne       Rifu      0
7   Richtfunkantenne       Rifu      1
8   Richtfunkantenne       Rifu      2
9   Richtfunkantenne   Richtung      0
10  Richtfunkantenne   Richtung      1
11  Richtfunkantenne   Richtung      2
12  Richtfunkantenne  Bemerkung      0

# I have tried things like

df_in = df.groupby(['Antenna', 'Col']).reset_index()
没有什么适合我,我也没有发现任何类似的问题。我想我问错问题了


非常感谢大家。

我终于找到了办法

df['Index'] = df.groupby(['Antenna', 'Col']).cumcount()+1
df["RANK"] = df.groupby(['Antenna', 'Col']).rank(method="first", ascending=True)
df

             Antenna        Col  Index  RANK
0      Sektorantenne     Sektor      1   1.0
1      Sektorantenne     Sektor      2   2.0
2      Sektorantenne     Sektor      3   3.0
3      Sektorantenne   Richtung      1   1.0
4      Sektorantenne   Richtung      2   2.0
5      Sektorantenne   Richtung      3   3.0
6   Richtfunkantenne       Rifu      1   1.0
7   Richtfunkantenne       Rifu      2   2.0
8   Richtfunkantenne       Rifu      3   3.0
9   Richtfunkantenne   Richtung      1   1.0
10  Richtfunkantenne   Richtung      2   2.0
11  Richtfunkantenne   Richtung      3   3.0
12  Richtfunkantenne  Bemerkung      1   1.0

我终于找到了办法

df['Index'] = df.groupby(['Antenna', 'Col']).cumcount()+1
df["RANK"] = df.groupby(['Antenna', 'Col']).rank(method="first", ascending=True)
df

             Antenna        Col  Index  RANK
0      Sektorantenne     Sektor      1   1.0
1      Sektorantenne     Sektor      2   2.0
2      Sektorantenne     Sektor      3   3.0
3      Sektorantenne   Richtung      1   1.0
4      Sektorantenne   Richtung      2   2.0
5      Sektorantenne   Richtung      3   3.0
6   Richtfunkantenne       Rifu      1   1.0
7   Richtfunkantenne       Rifu      2   2.0
8   Richtfunkantenne       Rifu      3   3.0
9   Richtfunkantenne   Richtung      1   1.0
10  Richtfunkantenne   Richtung      2   2.0
11  Richtfunkantenne   Richtung      3   3.0
12  Richtfunkantenne  Bemerkung      1   1.0