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

遍历pandas dataframe提取列表唯一值并生成新dataframe的方法

实现方案

直接通过pandas内置方法即可完成,不需要手动遍历全表,参考代码如下:

前置适配

如果你的values列存储的是逗号分隔的单个字符串,不是预拆分的列表,需要先执行格式转换:

df_raw['values'] = df_raw['values'].str.split(',')

核心实现代码

import pandas as pd

# 1. 对每个id对应的列表去重后,拆分为单行单值的序列
value_series = df_raw['values'].apply(lambda x: list(set(x))).explode()

# 2. 全局去重后生成新DataFrame,指定列名
result_df = pd.DataFrame(value_series.unique(), columns=['value_list'])

# 3. 新增常量列统一赋值为AK
result_df['Constant_#'] = 'AK'

可选调整

如果需要保留值和原id的对应关系,不需要全局跨id去重,把第二步的value_series.unique()替换为value_series.drop_duplicates()即可。

测试验证

你可以用下面的代码构造和示例一致的原数据测试效果:

# 构造示例原数据
df_raw = pd.DataFrame(
    {'values': [
        ['Akjhks','Bsdfjhi','Idsfaf','Akjhks'],
        ['Lkhiuy','Eqiyeri','Jewruq']
    ]},
    index=[121, 345]
)

运行核心代码后得到的result_df和要求的目标输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 02:54:03