如何在Python Pandas中向DataFrame添加COL1不存在的列表值并指定列值
在Pandas中根据列表添加不存在的行
示例数据
先构建题目中的DataFrame和目标列表:
import pandas as pd df = pd.DataFrame({ 'COL1': ['var1', 'var2', 'var3'], 'COL2': ['xxx', 'xxx', 'yyy'], 'COL3': [20, 10, 10] }) list_1 = ["var1", "var5"]
需求
- 仅将
list_1中不存在于COL1列的值作为新行添加到DataFrame - 新增行的
COL2固定为"yyy",COL3固定为10
解决方案
# 筛选list_1中未出现在COL1的元素 missing_vars = [var for var in list_1 if var not in df['COL1'].values] # 若有缺失元素,创建新行并合并 if missing_vars: new_rows = pd.DataFrame({ 'COL1': missing_vars, 'COL2': 'yyy', 'COL3': 10 }) df = pd.concat([df, new_rows], ignore_index=True)
步骤解释
- 筛选缺失元素:通过列表推导式遍历
list_1,借助df['COL1'].values快速判断元素是否存在于目标列,得到需要添加的元素列表missing_vars。 - 合并新行:当
missing_vars不为空时,构建包含指定列值的新DataFrame,再用pd.concat合并到原DataFrame中,ignore_index=True会重置合并后的索引,避免索引重复冲突。
运行结果
执行代码后得到的DataFrame:
COL1 COL2 COL3 0 var1 xxx 20 1 var2 xxx 10 2 var3 yyy 10 3 var5 yyy 10
内容的提问来源于stack exchange,提问作者dingaro
相关产品推荐
相关产品推荐

