我有一些数据,如下:
+--------+------+
| Reason | Keys |
+--------+------+
| x | a |
| y | a |
| z | a |
| y | b |
| z | b |
| x | c |
| w | d |
| x | d |
| w | d |
+--------+------+
我想获取与每个Reason
的第一次出现相对应的Key
。像这里一样,我应该分别为Reasons
x,y,x,w
得到Keys
a,b,c,d
。之后,我想计算每个Reason
的百分比,就像度量每个Reason
发生多少次一样。因此x = 2/4 = 50%.
和w,y = 25%
各一个。
对于百分比,我想我可以根据上一步使用类似value_counts(normalize=True) * 100
的东西。什么是进行的好方法?
答案 0 :(得分:1)
您对第二步是正确的,第一步可以通过
实现summary = df.groupby("Keys").first()
答案 1 :(得分:0)
您可以使用drop_duplicates
df.drop_duplicates(['Reason'])
Out[207]:
Reason Keys
0 x a
1 y a
2 z a
6 w d