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

如何在Pandas中提取其他列行数据相同时的Article列值列表

解决方案

你需要按除Article外的所有列分组,筛选出分组后包含多个Article的组,再提取这些组的Article值组成元组列表。直接上代码:

首先构造示例DataFrame:

import pandas as pd

data = {
    'Rating': [5,5,5,4],
    'UserName': ['Madison','Madison','Lindsanna','Mamax4'],
    'ReviewDate': ['2023-06-05']*4,
    'Article': ['025-03-7579','025-03-2888','025-03-9268','025-03-1736'],
    'Score': [0.924742,0.924742,0.990300,0.875178]
}
df = pd.DataFrame(data)

然后执行核心逻辑:

# 确定分组列:排除Article
group_cols = df.columns.difference(['Article'])

# 分组后聚合Article为元组,筛选出元素数>1的组
result = (
    df.groupby(group_cols)['Article']
      .agg(tuple)
      .loc[lambda x: x.str.len() > 1]
      .tolist()
)

print(result)
# 输出:[('025-03-7579', '025-03-2888')]

代码说明

  • df.columns.difference(['Article']):自动获取所有除Article外的列,避免手动输入列名出错;
  • groupby(group_cols)['Article'].agg(tuple):按指定列分组,把每组的Article值拼成元组;
  • .loc[lambda x: x.str.len() > 1]:只保留包含多个Article的分组(也就是你要找的重复数据组);
  • .tolist():把最终结果转成列表格式,匹配你的需求。

你之前用groupby('Article')方向反了,应该按其他列分组而非按Article分组,所以没得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 16:03:05