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

R语言:如何筛选保留同一Text_ID对应不同Course_ID的数据行

如何筛选出同一Text_ID对应不同Course_ID的记录

嘿,我完全理解你的需求啦——就是要保留那些同一个Text_ID对应不止一个不同Course_ID的数据行,去掉那些Text_ID对应的Course_ID全一样的记录对吧?作为编程新手,你可以根据自己常用的工具选择下面的方法:

方法一:用Excel(适合无编程基础的情况)

这是最容易上手的方式,只需要借助辅助列和筛选功能就能搞定:

  • 第一步:在数据旁边新增一列(比如C列),在C2单元格输入公式:
    =SUMPRODUCT(($B$2:$B$11=B2)/COUNTIF($A$2:$A$11&$B$2:$B$11,$A$2:$A$11&$B$2:$B$11))
    
    (注意把公式里的$B$2:$B$11和$A$2:$A$11替换成你实际的数据范围)
  • 第二步:把C2的公式下拉填充到所有行,这个列的数值代表当前行的Text_ID对应的唯一Course_ID数量
  • 第三步:选中整个数据区域,用「数据」选项卡的「筛选」功能,然后在C列的筛选器里选择「大于1」,剩下的就是你要的目标数据啦

方法二:用Python Pandas(适合想入门编程的情况)

如果你想尝试用代码实现,Pandas是处理表格数据的利器,步骤非常清晰:

  1. 先安装Pandas(如果没装的话,在命令行输入:pip install pandas)
  2. 编写代码:
    import pandas as pd
    
    # 读取你的数据(如果是Excel文件就用pd.read_excel替换pd.read_csv)
    df = pd.read_csv("你的数据文件名.csv")
    
    # 第一步:找出所有有多个不同Course_ID的Text_ID
    # 按Text_ID分组,统计每组的唯一Course_ID数量,筛选出数量>1的Text_ID
    target_text_ids = df.groupby("Text_ID")["Course_ID"].nunique()[lambda x: x > 1].index
    
    # 第二步:筛选出这些Text_ID对应的所有行
    result_df = df[df["Text_ID"].isin(target_text_ids)]
    
    # 第三步:把结果保存成新的文件
    result_df.to_csv("筛选后的数据.csv", index=False)
    
  3. 运行代码后,你就能得到符合要求的结果文件啦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.29 20:52:37