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

如何根据DataFrame列值将对应列转为列表或嵌套列表?

解决方案

可以通过定义带逻辑判断的处理函数,结合pandas的apply方法实现需求:

  1. 定义处理函数,根据Consideration_level的值分支处理Consideration_value:
def format_value(row):
    level = row['Consideration_level']
    value = row['Consideration_value']
    if level == 'Car_ID':
        # 转为单个元素的列表
        return [value]
    else:
        # 按逗号分割后,每个元素嵌套成单独列表,同时去除元素前后空格
        return [[item.strip()] for item in value.split(',')]
  1. 将函数应用到DataFrame的每一行:
import pandas as pd

# 构造示例DataFrame
data = {
    'Consideration_level': ['Car_ID', 'Car_ID', 'Car_type, Location', 'Car_Color, Location'],
    'Consideration_value': ['00111', '00222', 'Jeep, NYC', 'Pink, BOS']
}
df = pd.DataFrame(data)

# 应用处理函数,直接替换原列(也可新建列保留原始数据)
df['Consideration_value'] = df.apply(format_value, axis=1)

print(df)

运行后输出的结果将完全符合需求:

Consideration_level Consideration_value
0                  Car_ID             [00111]
1                  Car_ID             [00222]
2     Car_type, Location      [[Jeep], [NYC]]
3  Car_Color, Location      [[Pink], [BOS]]

细节说明

  • 使用strip()是为了处理分割后元素的前后空格(比如'Jeep, NYC'分割后' NYC'的空格),避免列表中出现带多余空格的元素
  • 如果需要保留原始数据,可新建一列存储格式化后的值,比如df['Formatted_Value'] = df.apply(format_value, axis=1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 19:01:18