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

如何筛选DataFrame中多值列含指定项的行并展示?

提取包含'Bcom'的课程行的实现方法

需求说明

从给定的包含多值课程(分号分隔)的DataFrame中,提取所有与'Bcom'相关的条目,保留对应行的其他字段信息,最终仅显示'Bcom'对应的行。

实现步骤

  • 构造原DataFrame(如果已有数据可跳过此步)
import pandas as pd

df = pd.DataFrame({
    'uni_id': [1, 1, 2],
    'country_name': ['UK', 'UK', 'UK'],
    'scholarship': [1, 0, 1],
    'timeperiod': [4, 2, 3],
    'type': ['UG', 'PG', 'UG'],
    'course_name': ['Btech;Bcom;BArts', 'Mba', 'Bcom;xyx']
})
  • 拆分多值课程并展开为多行
    将course_name列中用分号分隔的课程拆分成独立条目,同时复制其他列的对应数据:
df_expanded = df.assign(course_name=df['course_name'].str.split(';')).explode('course_name')
  • 筛选目标课程行
    直接筛选出course_name为'Bcom'的行:
result = df_expanded[df_expanded['course_name'] == 'Bcom']
  • 查看结果
    执行print(result)后,输出结果与预期一致:
uni_id country_name  scholarship  timeperiod type course_name
0       1           UK            1           4   UG        Bcom
2       2           UK            1           3   UG        Bcom

补充说明

如果仅需筛选原DataFrame中包含Bcom的行(不拆分多值),可直接用字符串匹配:

df[df['course_name'].str.contains('Bcom')]

但此方法不会拆分多值课程,会保留原行的完整course_name内容,不符合本次需求的输出格式。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 08:56:08