У меня есть следующий массив имен столбцов в Python.

 col = ['code','ro','quantity','amount']

Я получаю обработанный фрейм данных из функции, которая может иметь или не иметь все вышеперечисленные столбцы. Я хочу добавить столбцы со значением по умолчанию, равным 0, если они отсутствуют в массиве.

Например Я получаю следующий фрейм

df1

code      ro      quantity
123       342     34.56
123       445     54.56

Мой желаемый датафрейм будет

code      ro      quantity  amount
123       342     34.56     0
123       445     54.56     0

Как я могу сделать это в пандах?

1
Neil 23 Июн 2019 в 10:29

4 ответа

Лучший ответ

Используйте reindex более axis=1:

df.reindex(col,fill_value=0,axis=1)

   code   ro  quantity  amount
0   123  342     34.56       0
1   123  445     54.56       0
2
anky_91 23 Июн 2019 в 07:30

Код:-

col = ['code','ro','quantity','amount']
for i in col:
    if i not in df1.columns:
        df[i] = 0
1
user11779328user11779328 13 Июл 2019 в 12:08

1 ) . Краткое и простое решение, если вы знаете основы Python и вам не нужно запоминать какой-либо новый метод.

col = ['code','ro','quantity','amount']

for var in col:
    if var not in df1.columns:
        df[var] = 0

Я надеюсь, что это может помочь вам.

0
Rahul charan 23 Июн 2019 в 09:07
for i in col :
   if i not in df:
      df[i] = 0 

0
tawab_shakeel 23 Июн 2019 в 07:31