Подготовка имен столбцов для БД (Python/Pandas)
При импорте данных из CSV в базы данных (PostgreSQL, SQLite и др.) важно, чтобы имена столбцов были «SQL-friendly»: без пробелов, спецсимволов и в едином регистре.
Почему это важно?
- Удобство: Не нужно постоянно использовать кавычки
""в SQL-запросах (например,SELECT "Customer ID" FROM...превращается вSELECT customer_id FROM...). - Стабильность: Исключаются ошибки из-за скрытых символов или разного регистра.
Скрипт для нормализации
Этот код приводит заголовки к формату snake_case:
import pandas as pd
# Загрузка
df = pd.read_csv("data.csv")
# Нормализация имен столбцов
df.columns = (
df.columns
.str.strip() # Убираем пробелы по краям
.str.lower() # Приводим к нижнему регистру
.str.replace(" ", "_") # Заменяем пробелы на подчеркивания
.str.replace(r"[^\w]+", "_", regex=True) # Заменяем спецсимволы на подчеркивания
)Что делает регулярное выражение [^\w]+?
[^\w]— находит любой символ, который не является буквой, цифрой или подчеркиванием.+— находит один или несколько таких символов подряд._— заменяет их на одно подчеркивание.
Когда применять?
- Перед записью в базу данных через
to_sql. - Перед сохранением промежуточных CSV-файлов для дальнейшего импорта.
- При автоматизации обработки отчетов, приходящих от коллег или из внешних систем.
Reference:
- ChatGPT