熊猫-将缺失的列自动添加到数据框

时间:2020-06-24 10:45:11

标签: pandas dataframe

我有一个列表,其中包含熊猫数据框可以包含的所有可能的列。

possible_values = ['apples','banana','orange']

我正在尝试执行检查,以确保如果数据框没有按照上述列表包含所有列,则需要将该列添加到值设置为0的数据框中

例如,如果我拥有的数据框包含下面的列,则需要添加另外两个缺少的列

df.columns = ['apples']

预期产量

df.columns = ['apples','banana','orange']

2 个答案:

答案 0 :(得分:3)

类似的事情应该起作用:

for fruit in set(possible_values).difference(df.columns):
    df.insert(len(df.columns), fruit, 0)

set.difference为您提供了数据框中存在的 not 列。然后,insert命令需要插入的位置(在本例中为结尾),名称和默认值(0)

编辑:从df.columns.difference(possible_values)更改为set(possible_values).difference(df.columns)

答案 1 :(得分:1)

您可以像这样遍历各列并创建一个新列。

https://www.instagram.com/username/?__a=1

输出:

df = pd.DataFrame({'apples' : [1,2,3]})
possible_values = ['apples','banana','orange']
for val in possible_values:
    if val not in df.columns:
        df[val] = 0
df