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

Python提取DataFrame中col1与col2的唯一组合及对应值

问题

现有如下DataFrame:

col1   col2     sum    value_1   value_2   value_3   value_4
timestamp       
2022-05-09 11:28:00    30     09       100      0         0        0         1
2022-05-09 11:28:01    30     11       105      0         0        1         0
2022-05-09 11:28:02    30     09       103      0         0        0         1
2022-05-09 11:28:03    50     11       109      0         1        1         0
2022-05-09 11:28:04    50     09       110      0         1        0         1
2022-05-09 11:28:05    50     09       101      0         1        0         1

需要忽略timestamp和sum列,提取col1与col2的唯一组合,且每个组合对应的value_1、value_2、value_3、value_4值保持一致,期望结果如下:

col1   col2   value_1   value_2   value_3   value_4
   30     09      0         0        0         1
   30     11      0         0        1         0
   50     11      0         1        1         0
   50     09      0         1        0         1

请问如何实现该需求?

实现方法

可以通过pandas的drop_duplicates()方法快速实现,具体步骤:

  • 筛选出需要保留的列:col1、col2以及所有value_*系列列
  • 对筛选后的列执行去重操作,自动保留每个唯一组合的第一条记录

核心代码

import pandas as pd

# 假设原始DataFrame名为df
result = df[['col1', 'col2', 'value_1', 'value_2', 'value_3', 'value_4']].drop_duplicates()

额外验证(可选)

如果需要提前确认每个col1+col2组合对应的value列完全一致(避免存在同一组合对应不同value的情况),可以先做分组校验:

# 统计每个col1+col2组合下各value列的不同值数量
check_df = df.groupby(['col1', 'col2'])[['value_1', 'value_2', 'value_3', 'value_4']].nunique()

# 若所有统计结果都是1,说明每个组合的value列完全一致
if (check_df == 1).all().all():
    result = df[['col1', 'col2', 'value_1', 'value_2', 'value_3', 'value_4']].drop_duplicates()
else:
    print("存在同一col1+col2组合对应不同value值的情况,请先处理数据")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:20:18