如何用指定列表批量覆盖Pandas DataFrame的多列值?
为Pandas DataFrame多列批量填充不同固定值的简便方法
有两种简洁的实现方式,可根据场景选择:
方法一:直接列赋值(最简洁)
当overwrite列表的元素顺序与DataFrame的列顺序完全对应时,直接给所有列批量赋值即可:
import pandas as pd # 构造原始DataFrame data = {'A': [1, 5, 4], 'B': ['dog', 'cat', 'moose'], 'C': ['red', 'yellow', 'blue']} df = pd.DataFrame(data) overwrite = [0, 'cat', 'orange'] # 执行批量覆盖 df[df.columns] = overwrite
执行后得到目标结果:
A B C 0 0 cat orange 1 0 cat orange 2 0 cat orange
方法二:使用assign方法(保留原DataFrame)
如果需要保留原始数据,或者想更清晰地映射列与值的对应关系,可通过zip将列名和overwrite元素配对为字典,再用assign生成新的DataFrame:
new_df = df.assign(**dict(zip(df.columns, overwrite)))
该方式不会修改原df,结果会存储在新变量new_df中。
内容的提问来源于stack exchange,提问作者geds133
相关产品推荐
相关产品推荐

