Я думаю, что идея с cut
работает хорошо, также данные времени преобразуются в timedeltas с помощью to_timedelta
, заменяют несовпадающие значения на fillna
и последнюю совокупность [116 ]:
print (df)
time col
0 16:30:00.095 A
1 16:30:00.097 B
2 16:30:00.122 C
3 16:30:00.255 D
4 16:30:00.322 E
5 16:30:00.420 F
6 16:30:00.569 G
df['time'] = pd.to_timedelta(df['time'].astype(str))
L = ['16:30:00.100', '16:30:00.200', '16:30:00.350', '16:30:00.450']
v = pd.to_timedelta(L + [pd.Timedelta.max])
df['b'] = pd.cut(df['time'], bins=v, labels = L)
df['b'] = df['b'].cat.add_categories(['not possible'])
df['b'] = df['b'].fillna('not possible')
print (df)
time col b
0 16:30:00.095000 A not possible
1 16:30:00.097000 B not possible
2 16:30:00.122000 C 16:30:00.100
3 16:30:00.255000 D 16:30:00.200
4 16:30:00.322000 E 16:30:00.200
5 16:30:00.420000 F 16:30:00.350
6 16:30:00.569000 G 16:30:00.450
df2 = df.groupby('b')['col'].apply(', '.join).reset_index()
print (df2)
b col
0 16:30:00.100 C
1 16:30:00.200 D, E
2 16:30:00.350 F
3 16:30:00.450 G
4 not possible A, B
Примечание: Как упомянуто в комментариях, этот метод удерживается от использования с Django 1.7.
Или просто создайте файл, названный sql / <modelname> .sql: http://docs.djangoproject.com/en/dev/howto/initial-data/#providing-initial-sql-data
Да, существуют сигналы, которые можно поймать после syncdb.
Посмотрите сигналы управления для документов.
Это - то, как contrib.auth таблица полномочий заполняется, а также contenttypes таблица платформы.