python - 如何找到一个组中有多少成员同时也是另一个组的成员?
问题描述
我正在尝试查找某个组中出现在其他组中的人数。例如,这里是 Pandas 数据框:
d = {'name': ['ash', 'psyduck', 'pikachu', 'charizard', 'ash', 'psyduck'], 'group': ['a', 'b', 'c', 'b', 'b', 'a']}
看起来像这样:
灰:一个
心理鸭:b
皮卡丘:c
喷火龙:b
灰分:b
心理鸭:一个
我正在尝试创建一个如下所示的交叉表:
a b c
a 2 2 0
b 2 3 0
c 0 0 1
本质上,这个交叉表显示了组 x 的成员有多少也是组 x 的成员。例如,a 和 b 组中有 2 人,因此在这些列的交集处有 2
我使用了 Pandas 交叉表功能,但它没有给出我正在寻找的结果。
解决方案
import pandas as pd
d = {'name': ['ash', 'psyduck', 'pikachu', 'charizard', 'ash', 'psyduck'], 'group': ['a', 'b', 'c', 'b', 'b', 'a']}
df = pd.DataFrame(d)
df = df.merge(df, on='name')
print(
pd.crosstab(df.group_x, df.group_y)
)
输出:
group_y a b c
group_x
a 2 2 0
b 2 3 0
c 0 0 1
推荐阅读
- c++ - 从文件中获取数据时如何放置换行符?
- arrays - 删除重复的动态范围,保持第一,使用基于特定字符串的拆分
- java - 在任何一种情况下都可以选择执行操作
- python - If、Elif、大于、小于逻辑
- python - 页面 404 取决于它在“urlpatterns”中的位置 - 为什么?
- excel - 使用带有 Internet Explorer 的 Excel 自动化选择选项
- azure - Azure Edge 模块多个 IP 地址
- python - 根据字典列表中的两个值获取字典列表
- couchbase - 我什么时候应该在 N1ql 中使用 UNNEST 与 ANY...SATISFIES?
- pygame - 如果窗口失焦,Pygame 代码将停止工作