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

如何将Pandas DataFrame中相同元素归类到指定列

实现方法

核心逻辑是先明确元素与目标列的固定对应关系,再逐行提取剩余元素放到最后一列即可,不需要复杂的条件判断或排序操作。

对应规则(根据期望结果整理)

  • 列1固定存放值C
  • 列2固定存放值B
  • 列3固定存放值A
  • 列4固定存放值D
  • 列5存放每行中不属于上述4个值的剩余元素

可直接运行的代码

import pandas as pd

# 初始化原始数据
info = [["A", "B", "C", "D", "nan"], 
       ["A", "C", "D", "B", "E"], 
       ["C", "D", "A", "B", "K"]]
col = ["1", "2", "3", "4", "5"]
abc_df = pd.DataFrame(info, columns=col)

# 配置列与固定值的映射,后续调整规则只需要修改这个字典
col_value_map = {
    "1": "C",
    "2": "B",
    "3": "A",
    "4": "D"
}
fixed_val_set = set(col_value_map.values())

# 构建新数据表
result = pd.DataFrame()
# 填充固定值列
for col_name, fixed_val in col_value_map.items():
    result[col_name] = [fixed_val] * len(abc_df)
# 填充最后一列的剩余值
result["5"] = abc_df.apply(
    lambda row: [item for item in row if item not in fixed_val_set][0],
    axis=1
)

print(result)

运行输出

1  2  3  4    5
0  C  B  A  D  nan
1  C  B  A  D    E
2  C  B  A  D    K

如果后续需要调整元素和列的对应关系,直接修改col_value_map的键值对即可;如果某行存在多个非固定值,可根据业务需求调整最后一列的取值逻辑(比如多值拼接、按规则筛选等)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 23:16:00