Чтобы добавить к этому известному вопросу (хотя и слишком поздно): вы также можете сделать df.groupby('column_name').get_group('column_desired_value').reset_index()
, чтобы создать новый фрейм данных с указанным столбцом, имеющим определенное значение. Например,
import pandas as pd
df = pd.DataFrame({'A': 'foo bar foo bar foo bar foo foo'.split(),
'B': 'one one two three two two one three'.split()})
print("Original dataframe:")
print(df)
b_is_two_dataframe = pd.DataFrame(df.groupby('B').get_group('two').reset_index()).drop('index', axis = 1)
#NOTE: the final drop is to remove the extra index column returned by groupby object
print('Sub dataframe where B is two:')
print(b_is_two_dataframe)
Запустите это:
Original dataframe:
A B
0 foo one
1 bar one
2 foo two
3 bar three
4 foo two
5 bar two
6 foo one
7 foo three
Sub dataframe where B is two:
A B
0 foo two
1 foo two
2 bar two
Существует по крайней мере две сторонних утилиты для обработки миграций схемы DB, Юга и Django Evolution. Я не попробовал ни один, но я услышал некоторые хорошие вещи о Юге, хотя Evolution был вокруг немного дольше.
Кроме того, взгляд на SchemaEvolution на Wiki Django. Это - просто страница Wiki о миграции дб.
В прошлый раз я проверил (версия 0.97), syncdb сможет добавить таблицы для синхронизации схемы DB с models.py файлом, но это не может:
Это могло бы быть возможно, хотя записать сценарий Django для создания миграции путем проигрывания с двумя различными менеджерами, но это могло бы взять возрасты, если DB является большим.
Было заседание на изменениях схемы DB в недавнем DjangoCon; существует видео сессии (благодаря Google), который должен предоставить немного полезной информации в ряде этих утилит.
Я слышал партию пользы о Django Schema Evolution Branch, и это был opions фактических пользователей. Это работы mostely из поля и делают то, что это должно сделать.
И теперь существует также dmigrations. Из объявления:
django-эволюция пытается решить эту проблему умный путь путем обнаружения изменений в моделях, которые еще не отражаются в схеме базы данных и выясняющий что потребности быть сделанными для возвращения двух в синхронизации. Напротив, dmigrations проявляет глупый подход: это требует, чтобы Вы явно заявили изменения в последовательности миграций, которые будут применены в свою очередь, чтобы принести базе данных до нового состояния, которое отражает базовые модели.
Это означает дополнительную работу для разработчиков, которые создают миграции, но она также делает целый процесс абсолютно прозрачным — для наших проектов, мы решили пойти с самой простой системой, которая могла возможно работать.
(Мой полужирный)
U должен поиск Dmigrations, он функционирует немного отличающийся от django-eveoltions. Это показывает Вам все, что это делает, и для сложных вещей это просит у Вас Ваши вмешательства. Это должно быть большим.