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

如何将列表赋值给Pandas Series的多个元素?

Pandas布尔索引赋值嵌套列表的问题

错误代码示例

import pandas as pd

series = pd.Series([[1, 2], [], [4, 5]])
series[[True, False, False]] = [0, 0, 0, 0, 0]

报错原因

执行上述代码会失败,因为Pandas默认会将右侧列表的元素逐一映射到布尔索引选中的Series元素上,但实际需求是将整个列表作为单个值,赋值给布尔索引为True的元素,期望得到结果:pd.Series([[0, 0, 0, 0, 0], [], [4, 5]])。

解决方法

要实现需求,需要将右侧的目标列表包装成嵌套结构,让Pandas识别为单个值进行赋值:

import pandas as pd

series = pd.Series([[1, 2], [], [4, 5]])
# 用.loc明确索引,并将目标列表嵌套在一层列表中
series.loc[[True, False, False]] = [[0, 0, 0, 0, 0]]

如果布尔索引仅选中单个元素,也可以直接使用.at进行精准赋值:

series.at[0] = [0, 0, 0, 0, 0]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 19:24:56