如何使用两个列表对应为DataFrame的索引和指定列赋值
错误原因
你写的双层嵌套循环会对list1中的每个索引,依次覆盖写入list2的所有值,最终每个索引对应的列值都会被覆盖为list2的最后一个元素,因此得不到预期结果。
实现方案
你可以选择以下任意一种方法实现需求,两种方法都要求list1和list2长度相同、元素位置一一对应:
- 方法1:用
zip()配对两个列表做单层循环,逻辑直观,适合小数据量场景
for idx, val in zip(list1, list2): df.loc[idx, 'column name'] = val
- 方法2:直接批量赋值,不需要循环,执行效率更高,适合大数据量场景
df.loc[list1, 'column name'] = list2
内容的提问来源于stack exchange,提问作者Seba
相关产品推荐
相关产品推荐

