python - 如何获取两个数据框列之间的交集项?
问题描述
如上图所示,如何找到每个 userId 的“实际”和“预测”列中出现的项目总数?类型是 pandas.core.frame.DataFrame。
构建示例表的代码如下:
import pandas as pd
import numpy as np
# initialize list of lists
data = pd.DataFrame(np.array([[32, 256, 5, 102, 74, 171, 270, 111, 209, 24],
[1, 258, 257, 281, 10, 269, 14, 13, 272, 273],
[258, 260, 264, 11, 271, 288, 294, 300, 301],
[9, 10, 11, 12, 22, 28],
[1, 514, 2, 516, 4, 13, 526, 527, 1037, 529, 256, 678],
[1, 1028, 7, 9, 1033, 15, 1047, 25, 546, 1061],
[258, 259, 514, 261, 131, 135, 520, 265, 1028, 50],
[2, 11, 12, 526, 1044, 22, 23, 27, 541, 54, 88],
[332, 168, 79, 343, 38, 1007, 9, 232, 381, 1079],
[38, 168, 561, 542, 69, 20, 79, 385, 332, 480]]))
test_actual = data.rename(columns={0: "Actual"})
test_actual['userId'] = [1,2,3,5,6,8,10,12,15,18]
test_actual = test_actual.set_index('userId')
data2 = [[154, 248, 237, 223, 83, 283, 69, 32, 480, 325],
[332, 168, 38, 9, 385, 258, 561, 41, 79, 542],
[322, 258, 226, 232, 1007, 343, 332, 260, 561, 381],
[237, 154, 196, 223, 523, 277, 226, 748, 323, 28],
[168, 332, 38, 9, 83, 561, 232, 526, 1007, 20],
[79, 38, 480, 168, 232, 561, 653, 9, 542, 996],
[9, 232, 332, 523, 168, 322, 7, 1028, 41, 542],
[83, 168, 232, 322, 385, 223, 154, 941, 283, 12],
[69, 38, 196, 480, 83, 385, 20, 343, 283, 542],
[480, 38, 69, 83, 385, 154, 542, 941, 283, 223]]
test_actual['Predict'] = data2
test_actual
您的意见和帮助将不胜感激!谢谢!
解决方案
如果没有进一步的细节,例如,有多少类,数据集多长时间,apply
似乎是唯一可行的选择:
(test_actual
.apply(lambda x: set(x['Actual']).intersection(set(x['Predict'])),
axis=1)
)
输出:
userId
1 {32}
2 {258}
3 {258, 260}
5 {28}
6 {526}
8 {9}
10 {1028}
12 {12}
15 {38, 343}
18 {480, 385, 69, 38, 542}
dtype: object
推荐阅读
- javascript - Angular mat-tree dataSource 未保留对原始数据的引用
- java - 实体中 @PreUpdate 上的 Stackoverflow
- scrapy - Scrapy:从 API 发布请求中获取 403 客户端错误
- antlr4 - 如何使用用户提供的 START 和 END 令牌解析文字块
- android - Android:启动画面 API 显示为空
- c++ - 使用正则表达式拆分 verilog 元素描述
- vue.js - 为什么“vue-cli-service build”会创建文件的多个版本而不是将其放入app-chunk
- powershell - 使用 powershell 打开边缘的问题
- reporting-services - Does anyone have working examples of configuration files for SSRS (SQL Server Reporting Services) for custom security plugins?
- flutter - 固定小部件在一行中的位置