python - 我怎样才能找到每两个演员播放以下数据框的电影数量?
问题描述
我有一个数据框:
pd.DataFrame({'movie':['HT','TP','Wi','kah','MB'],'actors':[['QQ','AA','ZZ','WW','SS','XX'],['QQ','WW','EE','DD','SS','AA'],['EE','DD','CC','RR','FF','VV'],['VV','CC','XX','ZZ','FF','DD'],['SS','AA','RR','EE','WW','QQ']]})
这是一个包含每部电影中所有演员的电影 DataFrame,我想找出每两个演员一起演过的电影数量。例如艺术情侣“AA”和“QQ”合作过的电影数量。
解决方案
让我们尝试爆炸actors
然后自合并:
s = df.explode('actors')
(s.merge(s, on='movie')
.query('actors_x<actors_y')
.groupby(['actors_x','actors_y']).size()
.unstack('actors_y', fill_value=0)
)
输出:
actors_y DD EE FF QQ RR SS VV WW XX ZZ
actors_x
AA 1 2 0 3 1 3 0 3 1 1
CC 2 1 2 0 1 0 2 0 1 1
DD 0 2 2 1 1 1 2 1 1 1
EE 0 0 1 2 2 2 1 2 0 0
FF 0 0 0 0 1 0 2 0 1 1
QQ 0 0 0 0 1 3 0 3 1 1
RR 0 0 0 0 0 1 1 1 0 0
SS 0 0 0 0 0 0 0 3 1 1
VV 0 0 0 0 0 0 0 0 1 1
WW 0 0 0 0 0 0 0 0 1 1
XX 0 0 0 0 0 0 0 0 0 2
推荐阅读
- android - 运行没有权限的颤振项目时出错
- python - Julia:将 Dict 项作为参数传递给函数
- python - 未找到 boto3 模块
- c++ - C++ 错误:取消定义对类中 main 的引用
- rxjs - rxjs catcherror 出现在管道之前
- nearprotocol - NEAR 协议中存储的智能合约 WebAssembly 二进制文件在哪里/如何?
- google-places-api - 替代 Google 附近搜索
- python - 电报机器人在回复键盘后无法发送消息
- node.js - 在 AWS Lambda 中使用 ImageMagick 从图像中获取 EXIF 数据
- javascript - 周围最近的坐标