Перевод категориальных признаков датафрейма в бинарные

номер город колич. признак
0 2 москва 1
1 3 питер 2
2 4 саратов 3
3 5 москва 4
4 6 питер 3
5 7 москва 4
6 8 сыктывкар 5
7 9 саратов 6

москва питер саратов сыктывкар
0 1.0 0.0 0.0 0.0
1 0.0 1.0 0.0 0.0
2 0.0 0.0 1.0 0.0
3 1.0 0.0 0.0 0.0
4 0.0 1.0 0.0 0.0
5 1.0 0.0 0.0 0.0
6 0.0 0.0 0.0 1.0
7 0.0 0.0 1.0 0.0

номер город колич. признак москва питер саратов сыктывкар
0 2 москва 1 1.0 0.0 0.0 0.0
1 3 питер 2 0.0 1.0 0.0 0.0
2 4 саратов 3 0.0 0.0 1.0 0.0
3 5 москва 4 1.0 0.0 0.0 0.0
4 6 питер 3 0.0 1.0 0.0 0.0
5 7 москва 4 1.0 0.0 0.0 0.0
6 8 сыктывкар 5 0.0 0.0 0.0 1.0
7 9 саратов 6 0.0 0.0 1.0 0.0

О формате сохранения данных HDF

pandas hdfstore

Долгое время лелеял себя надеждой, что смогу построить  эффективную базу данных в формате  HDF. А что?  Очень быстрая, прекрасно интегрируется с pandas — что еще нужно, если основные операции завязаны на pandas?

Проблема в одном — при попытке вносить изменения  в таблицы база начинает неконтролируемо расти. Даже при повторном сохранении одногиговой базы,  в которую не было добавлено ни одной строчки, файл, ничтоже сумняшеся, прибавляет в весе 150-200 мегабайт.  Облазил документацию и стаковерфлоу в поисках правильного рецепта приготовления HDF, но не преуспел.

И только недавно наткнулся на дельный совет — не старайтесь использовать hdf как базу данных. Этот формат отлично приспособлен для быстрого сохранения большого датафрейма и быстрого же его чтения, но  апдейт — не про него.

Плюнул я на все эти свои эксперименты и вернулся к старому доброму SQL.