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

如何在Python的DataFrame中实现两列列表元素求和而非拼接?

解决DataFrame列表元素数值求和问题

问题核心是:你拆分得到的列表元素仍然是字符串类型,所以+会执行字符串拼接而非数值求和。要实现数值相加,需要把列表里的元素转换为浮点型(float)。

修改方案一:转换列表时直接转数值类型

在拆分字符串生成列表的步骤中,同时将每个元素转为float,后续直接用数值运算即可:

import pandas as pd

df = pd.read_csv('Example.csv')

# 去除方括号并拆分,同时将每个元素转为float
df["A_List"] = df["A_List"].apply(lambda x: [float(num) for num in x.strip("[]").split()])
df["B_List"] = df["B_List"].apply(lambda x: [float(num) for num in x.strip("[]").split()])

for i, row in df.iterrows():
    print(row["A_List"][0] + row["B_List"][3])

修改方案二:求和时临时转换类型

如果不需要提前修改整个列表的元素类型,可以在求和操作时单独转换:

import pandas as pd

df = pd.read_csv('Example.csv')

# 去除方括号并拆分为字符串列表
df["A_List"] = df["A_List"].apply(lambda x: x.strip("[]").split())
df["B_List"] = df["B_List"].apply(lambda x: x.strip("[]").split())

for i, row in df.iterrows():
    # 转换为float后再求和
    print(float(row["A_List"][0]) + float(row["B_List"][3]))

两种方案都能得到你期望的0.16这类数值结果,推荐方案一,因为后续对列表元素的其他数值操作也能直接使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 13:15:55