Как правило, я, как правило, делаю копии, делаю некоторую работу с фреймами данных, на случай, если я невольно изменяю их структуру или содержимое, и я хочу вернуться к старому, могу.
ЭтоВремя, мне нужно, чтобы моя вещь работала.
Контекст описание (но если вам нужен минимальный вопрос, перейдите к Проблема пожалуйста :
У меня есть времянабор данных для обучения, время может повторяться,
s1
2013-01 v1
2013-01 v2
s2
2013-02 v3
2013-02 v4
-2013-02 v5
s3
2013-03 v6
2013-03 v7
-2013-03 v8
-2013-03 v9
Я рассматриваю дефисные записи как дельты, которые необходимо сгруппировать, а также другие подмножества (минимум, достаточный для данных за 48 месяцев, здесь это образец из двухмесяцы для размера партии)
построение списка с:
def sub_index_df(train_dated_n):
gp = train.groupby(pd.Grouper(freq='M'))
l = [gp.nth(i) for i in range(gp.size().max())]
subsets = pd.concat(l, keys=list(range(gp.size().max())))
return subsets
, что приводит к этому:
s1
2013-01 v1
2013-02 v3
2013-03 v6
s2
2013-01 v2
2013-02 v4
2013-03 v7
С остатками; Остатки, я возвращаюсь к 48 месяцамполные наборы и элементы выбора для заполнения каждого остатка, так что он образует 48 подмножеств, например:
co=0;
cut=0;
for i in range(0, 10622):
if(tt.xs(i).shape[0]<12 and cut==0):
cut = i
if(tt.xs(i).shape[0]<12 and cut >0):
_ = set(tt.xs(0).index.values) - set(tt.xs(i).index.values)
borrowings = pd.DataFrame()
for time_index in _:
co = (co + 1) % cut
borrowed = tt.xs(co).loc[time_index]
borrowed['borrowed'] = 1
borrowings = borrowings.append([borrowed) #keeps track on new subsets
tt.xs(i).loc[time_index] = borrowed
tt.xs(i).sort_index(inplace=True)
tt (первые подмножества имеют длину 48):
tt.tail похож на несколько записей для каждого подмножества, до одной записи для каждого подмножества (в конце)
Проблема в том, что настройка tt.xs(i).loc[time_index]=borrowed
не работает.
Если я вижу последнее заимствованное подмножество после выполнения, оно хорошо извлекается изполные подмножества
borrowings = pd.DataFrame()
_.append([borrowed]).sort_values(inplace=True)
Теперь проблема в том, что добавление новых строк в *tt.xs(i)*
с помощью .loc
не работает.
tt.xs(i).loc[time_index] = borrowed