You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中找出两个DataFrame中涉及美国歌手最多的版本

解决步骤

要找出涉及美国歌手数量最多的版本,我们需要先处理多值歌手ID、关联国籍数据,再按版本统计去重后的美国歌手数量,具体操作如下:

1. 拆分music中的多歌手ID

music表的歌手ID存在单个值和元组两种格式,先将所有歌手ID拆分为每行一个ID的结构:

import pandas as pd

# 统一将歌手ID转为元组格式,再拆分展开
music_expanded = music.assign(歌手ID=music['歌手ID'].apply(lambda x: x if isinstance(x, tuple) else (x,))).explode('歌手ID')
# 转换为整数类型,方便后续关联
music_expanded['歌手ID'] = music_expanded['歌手ID'].astype(int)

2. 关联singer表筛选美国歌手

将拆分后的music_expanded与singer表通过歌手ID关联,只保留美国歌手的记录:

# 筛选美国歌手数据并关联
us_singers_in_music = pd.merge(music_expanded, singer[singer['国籍'] == 'USA'], on='歌手ID')

3. 按版本统计去重后的美国歌手数量

对每个版本,统计出现的不同美国歌手数量(去重避免同一歌手多次统计):

# 按版本分组,统计唯一歌手ID的数量
us_singer_count_by_version = us_singers_in_music.groupby('版本')['歌手ID'].nunique().sort_values(ascending=False)

# 输出结果
print(us_singer_count_by_version)

结果说明

根据你提供的样本数据,运行代码后会得到:

  • 版本1:涉及3位美国歌手(ID1、4、5)
  • 版本2:涉及2位美国歌手(ID5、6)
  • 版本3:涉及3位美国歌手(ID4、5、9)

因此版本1和版本3涉及的美国歌手数量最多,均为3位。

内容的提问来源于stack exchange,提问作者user19965401

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 08:35:30