在数据框中获取从一列到另一列的唯一连接

时间:2017-07-21 21:08:12

标签: python r dataframe

我有一个数据集

|c1| c2|
 a   c
 a   b
 a   b
 c   d
 c   a

我想获得一个频率列,以便我可以识别从c2到c1的唯一连接数 即结果应如下所示。

|c1| c2| freq|
 a   c    2
 a   b    2
 a   b    2
 c   d    2
 c   a    2

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

Rdplyr

df%>%group_by(c1)%>%dplyr::mutate(freq=length(unique(c2)))

# A tibble: 5 x 3
# Groups:   c1 [2]
     c1    c2  freq
  <chr> <chr> <int>
1     a     c     2
2     a     b     2
3     a     b     2
4     c     d     2
5     c     a     2

pythonpandas

df['freq']=df.groupby(['c1'])['c2'].transform(lambda x: x.nunique())

df

Out[49]: 
  c1 c2 freq
0  a  c    2
1  a  b    2
2  a  b    2
3  c  d    2
4  c  a    2