पंडों में, आप एक समूह में वस्तुओं की अगली पुनरावृत्ति के क्रम के अनुसार एक कॉलम कैसे बनाते हैं

मेरे पास यह डेटा है:

import io
df = pd.read_csv(io.StringIO("""Name,Team\nWill,DEN\nMark,SEA\nBob,MIA\nWill,DEN\nWill,DEN\nMark,SEA\nWill,DEN\nWill,DEN\nBob,MIA\nMark,SEA\n"""))
df

   Name Team
0  Will  DEN
1  Mark  SEA
2   Bob  MIA
3  Will  DEN
4  Will  DEN
5  Mark  SEA
6  Will  DEN
7  Will  DEN
8   Bob  MIA
9  Mark  SEA

और मैं इस तरह हर नाम या टीम की घटना का अनुक्रम प्राप्त करने की कोशिश कर रहा हूं:

   Name Team  Sequence
0  Will  DEN         1
1  Mark  SEA         1
2   Bob  MIA         1
3  Will  DEN         2
4  Will  DEN         3
5  Mark  SEA         2
6  Will  DEN         4
7  Will  DEN         5
8   Bob  MIA         2
9  Mark  SEA         3

मैंने जीरा की कोशिश की, लेकिन यह प्रत्येक नाम को प्रत्येक नाम के लिए एक अद्वितीय अनुक्रमणिका देता है (जो अन्य चीजों के लिए उपयोगी है, लेकिन यह कार्य नहीं):

df.reset_index().groupby('Name')['index'].cummin()

0    0
1    1
2    2
3    0
4    0
5    1
6    0
7    0
8    2
9    1

तो मैं फंस गया हूं और पूछ रहा हूं कि किसी के पास इस कार्य को पूरा करने का कोई तरीका है या नहीं।

0
oppressionslayer 3 पद 2019, 06:13

1 उत्तर

सबसे बढ़िया उत्तर

हमारे पास cumcount है

df.groupby(list(df),sort=False).cumcount()+1
0    1
1    1
2    1
3    2
4    3
5    2
6    4
7    5
8    2
9    3
dtype: int64
2
BENY 3 पद 2019, 06:16