如何解决Python 3 Pandas如何在数据框中重复计数以升序/降序计数
关于如何在Python3 Pandas中计算重复项,有很多很棒的例子,但是很难弄清楚重复项的发生情况。例如:一个dataframe列有4个值出现,我不希望有4个值作为答案,而是在新列中寻找1、2、3、4值。
d = {"Month":[1,2,3,4,5,6],"Rain":[30,40,50,20,30,70]}
#Desired Output: {"Month":[2,"Rain":[40,70]}
selected_month = [2,6] #list of months
new_d = {} #create a new dictionary to store selected month and rain
for key in d.items():
new_d[key[0]] = []
for i in selected_month:
new_d[key[0]].append(key[1][i-1])
print(new_d)
我尝试过:
MyCol Tally DecendingTally
'a' 1 4
'a' 2 3
'b' 1 2
'b' 2 1
'a' 3 2
'd' 1 1
'a' 4 1
...这会给我重复正确的计数,但不是计数。有什么建议?有什么办法让它下降吗?
解决方法
使用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
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。