Простое добавление пустого столбца в DataFrame Python
Быстрый ответ
Для создания нового пустого столбца в pandas DataFrame достаточно выполнить такую команду:
df['new_column'] = pd.NA # И вуаля, перед вами пустой столбец!
Эта лаконичная строка добавляет столбец new_column, инициализируя его специальным значением pd.NA из pandas. Оно используется для обозначения отсутствующих данных и эффективно работает с различными типами данных.

Нет повода для опасений: другие способы создания столбцов
NaN — мощное средство для числовых типов
Владельцы числовых данных, не волнуйтесь! Использование пустого столбца с np.nan немного похоже на операции с математической бесконечностью — это сложно объяснить, но чрезвычайно удобно. Он идеален для анализа данных и не создает проблем в численных операциях.
import numpy as np
df['numeric_column'] = np.nan # Просто следуйте за потоком данных!
Элегантность кода с помощью метода assign
Если вы стремитесь к более изящному коду, метод assign позволит добавить столбец, сохранив читаемость и последовательность кода. Этот метод возвращает обновлённый DataFrame — будто только что сошедший с печатного станка.
df = df.assign(new_text_column='').assign(new_numeric_column=np.nan)
# Приветствуем гибкость в действии!
Явное указание типа данных для точности столбца
Для тех, кому важно точно указать тип данных столбца, бесподобным инструментом будет pd.Series с параметром dtype. Этот подход для любителей точности и определенности.
df['typed_column'] = pd.Series(dtype='float64') # Отныне типизация под вашим контролем.
Визуализация 📊->🔍-> 🅿️
Представляем DataFrame как парковочное пространство 🅿️ для данных, которые символизируются машинками 🚗 . Каждый столбец — это место для "парковки" данных.
| Место 1 | Место 2 | Место 3 |
| ------- | ------- | ------- |
| 🚗 | 🚗 | 🚗 |
Добавление ПУСТОГО места можно сравнить с выделением пространства для возможного расширения:
| Место 1 | Место 2 | Место 3 | Место 4 (Пустое) |
| ------- | ------- | ------- | ---------------- |
| 🚗 | 🚗 | 🚗 | |
Когда требуется больше пустых мест...
Вам не хватает пустых столбцов? Это как если бы вы планировали разместить много автомобилей. Просто добавьте в DataFrame новые "места"!
new_cols = ['col1', 'col2', 'col3']
df = df.reindex(columns=df.columns.tolist() + new_cols) # Наше парковочное пространство расширилось!
Познакомьтесь: конкатенация DataFrame
Зачастую более удобно создать пустой DataFrame и приклеить его к исходному. Это похоже на строительство новой парковки рядом:
new_columns = pd.DataFrame(columns=['new_col1', 'new_col2'])
df = pd.concat([df, new_columns], axis=1) # Объединяем DataFrames: удобно и грамотно.
Выбор типов данных: принимайте решение осознанно
Ваш выбор типов данных должен быть взвешенным. pd.NA универсален, как футболка "free size", однако если ваш столбец предназначен только для числовых данных, рекомендуется использовать np.nan, чтобы обеспечить совместимость с численными операциями.
Полезные материалы
- pandas.DataFrame.insert — документация pandas 2.2.0 — Инструкция по использованию метода
.insert()от разработчиков pandas. - DataFrame — документация pandas 2.2.0 — Всё, что вы хотели знать о DataFrame для эффективного использования этого инструмента.
- Добавление нового столбца в существующий DataFrame в Pandas – GeeksforGeeks — Наглядные примеры и объяснения различных способов добавления столбцов к DataFrame.
- Как добавлять столбцы в DataFrame – YouTube — Визуальный гид по добавлению столбцов.
- Как добавить пустые столбцы в DataFrame с помощью Pandas – Medium — Статья о создании DataFrame с пустыми столбцами.
- Полное руководство по Pandas DataFrame – Analytics Vidhya — Обстоятельное руководство по работе с pandas DataFrame.


