繁体   English   中英

如何在 pandas 的 2 列 dataframe 中找到唯一组合的计数

[英]how do I find count of unique combination in 2 columns of dataframe in pandas

df = pd.DataFrame({'col1': [1,2,4,3], 'col2': [2,1,3,4]})
   col1 col2
0   1     2
1   2     1
2   4     3
3   3     4

期望的结果

  col1 col2 count
0   1     2     2
1   4     3     2

我试过了

(df.groupby(['team1','team2']).size()
   .sort_values(ascending=False)
   .reset_index(name='Count')
)

但这并没有给我独特的组合

frozenset ,您可以先从两列计算冻结集,然后使用命名aggregation

# compute unordered grouper
group = df[['col1', 'col2']].agg(frozenset, axis=1)

# craft a dictionary of expected output
# first rows for the existing columns + new column for count
d = {c: (c, 'first') for c in df}
d.update({'count': ('col1', 'count')})
# {'col1': ('col1', 'first'),
#  'col2': ('col2', 'first'),
#  'count': ('col1', 'count')}

# perform the aggregation
df.groupby(group, as_index=False).agg(**d)

output:

   col1  col2  count
0     1     2      2
1     4     3      2

你也做这样的事情,

df.apply(set, axis=1).value_counts()

Output:

{1, 2}    2
{3, 4}    2
dtype: int64

让我们检查一下

df[:] = np.sort(df.to_numpy(),axis=1)
df.value_counts()
Out[132]: 
col1  col2
1     2       2
3     4       2
dtype: int64

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM