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

如何将DataFrame中列表列拆分并均分成本至对应列?

解决DataFrame成本均分问题

预处理成本列

首先需要将带格式的成本字符串转换为数值类型,才能进行均分计算:

import pandas as pd

# 构建原始数据
df = pd.DataFrame({
    'workflow': [['cam', 'gdp', 'ott'], ['pdl', 'ott']],
    'cost': ['$2,346', '$1,200'],
    'cam': [None, None],
    'gdp': [None, None],
    'ott': [None, None],
    'pdl': [None, None]
})

# 清洗成本数据,转为整数
df['cost_clean'] = df['cost'].str.replace(r'[\$,]', '', regex=True).astype(int)

遍历分配成本

遍历每一行,计算均分金额后,根据workflow列表中的流程名,将值填充到对应列:

for index, row in df.iterrows():
    flow_list = row['workflow']
    split_value = row['cost_clean'] // len(flow_list)  # 用整数除法匹配示例结果
    # 逐个填充对应列
    for flow in flow_list:
        df.loc[index, flow] = split_value

# 移除临时清洗列(可选)
df = df.drop('cost_clean', axis=1)
# 将空值转为空白(可选,匹配示例格式)
df = df.fillna('')

最终输出结果

执行后得到的DataFrame与期望格式一致:

workflow    cost cam gdp ott pdl
0  ['cam', 'gdp', 'ott']  $2,346 782 782 782    
1         ['pdl', 'ott']  $1,200        600 600

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 07:42:41