熊猫列间引用

时间:2019-06-05 00:41:20

标签: python pandas

我有一些数据,如下:

+--------+------+
| 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的东西。什么是进行的好方法?

2 个答案:

答案 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