pandas如何将列表元素依次填充到DataFrame指定列
问题说明
现有初始结构的DataFrame:
需要将列表[6,7,6]的元素按顺序依次填充到DataFrame的one、Two、Four列,不对three列做任何修改,最终效果如下:
实现代码
首先构造和示例一致的测试DataFrame方便复现:
import pandas as pd import numpy as np # 初始化示例DataFrame df = pd.DataFrame({ 'one': [np.nan]*4, 'Two': [np.nan]*4, 'three': [0.0, 0.5, 1.0, 1.5], 'Four': [np.nan]*4 })
核心填充逻辑,两种写法均可实现目标效果:
写法1:直接列选广播赋值(最简洁)
# 列顺序必须和填充值列表顺序严格一一对应 fill_cols = ['one', 'Two', 'Four'] fill_vals = [6, 7, 6] df[fill_cols] = [fill_vals]
写法2:循环批量赋值(可读性更高)
fill_cols = ['one', 'Two', 'Four'] fill_vals = [6, 7, 6] for col, val in zip(fill_cols, fill_vals): df[col] = val
注意:
fill_cols的列顺序必须和fill_vals的值顺序完全匹配,否则会出现值填充错位的问题。未列入fill_cols的字段(如本次的three列)会保留原有所有数据,不会被修改。
内容的提问来源于stack exchange,提问作者user17475933
相关产品推荐
相关产品推荐

