Эффективный способ создания новых столбцов в пандах

Есть ли более эффективный способ создания нескольких новых столбцов в pandas dataframe df инициализированных до нуля, чем:

 for col in add_cols: df.loc[:, col] = 0 

4 Solutions collect form web for “Эффективный способ создания новых столбцов в пандах”

UPDATE: используя метод @ jeff , но делайте это динамически:

 In [208]: add_cols = list('xyz') In [209]: df.assign(**{i:0 for i in add_cols}) Out[209]: abcxyz 0 4 8 6 0 0 0 1 3 7 0 0 0 0 2 4 0 1 0 0 0 3 5 4 5 0 0 0 4 1 3 0 0 0 0 

СТАРЫЙ ответ:

Другой метод:

 df[add_cols] = pd.DataFrame(0, index=df.index, columns=add_cols) 

Демо-версия:

 In [343]: df = pd.DataFrame(np.random.randint(0, 10, (5,3)), columns=list('abc')) In [344]: add_cols = list('xyz') In [345]: add_cols Out[345]: ['x', 'y', 'z'] In [346]: df Out[346]: abc 0 4 9 0 1 1 1 1 2 8 8 1 3 0 1 4 4 8 5 6 In [347]: df[add_cols] = pd.DataFrame(0, index=df.index, columns=add_cols) In [348]: df Out[348]: abcxyz 0 4 9 0 0 0 0 1 1 1 1 0 0 0 2 8 8 1 0 0 0 3 0 1 4 0 0 0 4 8 5 6 0 0 0 
 In [13]: df = pd.DataFrame(np.random.randint(0, 10, (5,3)), columns=list('abc')) In [14]: df Out[14]: abc 0 7 2 3 1 7 0 7 2 5 1 5 3 9 1 4 4 2 1 4 In [15]: df.assign(x=0, y=0, z=0) Out[15]: abcxyz 0 7 2 3 0 0 0 1 7 0 7 0 0 0 2 5 1 5 0 0 0 3 9 1 4 0 0 0 4 2 1 4 0 0 0 

Вот взломать:

 [df.insert(0, col, 0) for col in add_cols] 

Вы можете обработать DataFrame синтаксисом типа dict:

 for col in add_cols: df[col] = 0 
  • Python Pandas: конвертировать 2,000,000 строк DataFrame в двоичную матрицу (pd.get_dummies ()) без ошибки памяти?
  • Панды: импорт Дата и 12 часов Время вместе
  • python pandas, DF.groupby (). agg (), ссылка столбца в agg ()
  • Могу ли я окрасить разные месяцы?
  • Pandas / Python: Как объединить два кадра данных без дубликатов?
  • iPython Notebook не печатает Dataframe в качестве таблицы
  • Как сделать разделитель в read_csv более гибким?
  • Получить список из заголовков столбцов Pandas DataFrame
  • Предупреждение Pandas о повторных вводах по индексу
  • Как использовать groupby для конкатенации строк в python pandas?
  • Как сделать кумулятивный "все"
  •  
    Interesting Posts for Van-Lav
    Python - лучший язык программирования в мире.