我有一个列表,其中包含熊猫数据框可以包含的所有可能的列。
possible_values = ['apples','banana','orange']
我正在尝试执行检查,以确保如果数据框没有按照上述列表包含所有列,则需要将该列添加到值设置为0的数据框中
例如,如果我拥有的数据框包含下面的列,则需要添加另外两个缺少的列
df.columns = ['apples']
预期产量
df.columns = ['apples','banana','orange']
答案 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