Python 3 Pandas如何计数(按升序/降序计数)数据帧中的重复



在Python3 Pandas中有很多关于如何计数重复的好例子,但我很难在重复出现时计算出"计数"。例如:一个数据帧列有4个值,我不希望4作为答案,而是在一个新列中寻找1、2、3、4的值。

MyCol     Tally  DecendingTally
'a'         1          4
'a'         2          3
'b'         1          2
'b'         2          1
'a'         3          2
'd'         1          1
'a'         4          1

我试过了:

df['Tally'] = df['MyCol'].count()

这让我重复了正确的计数,但不是计数。有什么建议吗?有什么办法让它体面一点吗?

使用GroupBy.cumcount并添加1:

df['Tally'] = df.groupby('MyCol').cumcount().add(1)
df['DecendingTally'] = df.groupby('MyCol').cumcount(ascending=False).add(1)
print (df)
MyCol  Tally  DecendingTally
0   'a'      1               4
1   'a'      2               3
2   'b'      1               2
3   'b'      2               1
4   'a'      3               2
5   'd'      1               1
6   'a'      4               1

最新更新