Я бы создал Series
, используя MultiIndex.from_tuples
, а затем unstack
его.
keys, values = zip(*counter.items())
idx = pd.MultiIndex.from_tuples(keys)
pd.Series(values, index=idx).unstack(-1, fill_value=0)
b d
a 5 2
c 0 7
Использование конструктора DataFrame
с stack
:
pd.DataFrame(counter, index=[0]).stack().loc[0].T
b d
a 5.0 2.0
c NaN 7.0
Это - в основном это - уменьшенный DB без свободного пространства должен будет быть 'выращен' для завершения почти любой операции.
Когда SQL исчерпывает пространство в файле MDF, это должно вырастить его, и это очень медленно и дорого.
Если Вы знаете, что у Вас есть достаточно пространства в разрешении файла и уменьшении. Остерегайтесь фрагментированных файлов, поскольку необходимо будет повторно индексировать впоследствии, если они будут.
Основной пример:
Файл базы данных 500 МБ, 400 МБ используются. Вы могли уменьшить его к 400 МБ, но следующая операция будет очень медленной, поскольку SQL добавляет 40 МБ (10%, по умолчанию) к размеру.
Файл базы данных 500 МБ, 50 МБ используются. Вы, вероятно, тратите впустую пространство. Уменьшите его к 100 МБ, и DB будет все еще иметь пространство, чтобы сделать много вещей.
Файл базы данных 500 МБ, используемых 50 МБ, но собирающийся импорт миллионы записей. Оставьте неуменьшенным. Проверьте снова после импорта.
DBS только для чтения должен всегда уменьшаться.