python - 在熊猫数据框中成对计数
问题描述
我在 pandas 中寻找一种简单的方法来计算 2 列之间的所有成对组合。例如:
df
Col1 Col2 Freq
A B 1
B A 1
A C 1
C B 1
C A 1
预期输出:
Col1 Col2 Freq
A B 2
A C 2
C B 1
谢谢
解决方案
np.sort
和groupby
主要技巧是在仅考虑列'Col1'
和时对每一行进行排序'Col2'
。我使用一些拆包技巧将排序的东西的第一列放入x
,第二列放入y
.
我可以将它们放在自己的列中,但这不是必需的,因为groupby
允许按外部数组进行分组。所以我就是这么做的。
x, y = np.sort(df[['Col1', 'Col2']].to_numpy(), axis=1).T
df.Freq.groupby([x, y]).sum()
A B 2
C 2
B C 1
Name: Freq, dtype: int64
推荐阅读
- c++ - 使用Boost :: Spirit从中缀到前缀的n元布尔语法转换?
- python - 熊猫数字格式,带括号的负数
- python - 如何在python中的类实例之间创建共享对象?
- vba - 在计算字段中查找最小数字
- python - How to use the replace() method with keyword arguments to replace empty strings
- python - Python Pylons/金字塔饼干
- reactjs - React Simple Re-Rendering - setState is not re-rendering?
- instagram - How to get profile information of user who comment on my Instagram post, using new Instagram graph APIs?
- scala - Scala idiomatic way to timeout an iterator map from within?
- java - 无法创建查询元模型 Spring Data JPA 存储库(奇怪的行为)