使用Pandas对比列表值与DataFrame列名并添加缺失列
为DataFrame自动补全缺失列并填充0
需求说明
对比指定列表中的字段与DataFrame的列名,若列表中的字段在DataFrame中不存在,则添加该列并统一填充0。
示例
- 指定列名列表:
lst = ['Items', 'model', 'quantity', 'price'] - 原始DataFrame:
| Items | model | price |
|---|---|---|
| Phone | 2023 | 200 |
| xyzzy | 2022 | 120 |
- 处理后结果:
| Items | model | quantity | price |
|---|---|---|---|
| Phone | 2023 | 0 | 200 |
| xyzzy | 2022 | 0 | 120 |
代码实现
import pandas as pd # 定义需要的列名列表 required_cols = ['Items', 'model', 'quantity', 'price'] # 构造示例DataFrame df = pd.DataFrame({ 'Items': ['Phone', 'xyzzy'], 'model': [2023, 2022], 'price': [200, 120] }) # 筛选出缺失的列 missing_columns = [col for col in required_cols if col not in df.columns] # 为缺失列赋值0 for col in missing_columns: df[col] = 0 # 按指定顺序重新排列列(可选,确保列顺序与需求一致) df = df[required_cols] print(df)
代码说明
- 通过列表推导式快速筛选出
required_cols中未出现在DataFrame列名里的字段; - 遍历缺失字段,为DataFrame添加对应列并统一填充0;
- 最后按指定列表的顺序重新排列列,保证输出结构完全符合预期。
内容的提问来源于stack exchange,提问作者JackJack
相关产品推荐
相关产品推荐

