Установка суб-фрейма данных по индексу, как мы можем выбрать его, используя xs в пандах - PullRequest
0 голосов
/ 25 ноября 2018

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

ЭтоВремя, мне нужно, чтобы моя вещь работала.

Контекст описание (но если вам нужен минимальный вопрос, перейдите к Проблема пожалуйста :

У меня есть времянабор данных для обучения, время может повторяться,

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): enter image description here

tt.tail похож на несколько записей для каждого подмножества, до одной записи для каждого подмножества (в конце)

enter image description here

Проблема в том, что настройка tt.xs(i).loc[time_index]=borrowed не работает.

Если я вижу последнее заимствованное подмножество после выполнения, оно хорошо извлекается изполные подмножества

borrowings = pd.DataFrame()
_.append([borrowed]).sort_values(inplace=True)

enter image description here

Теперь проблема в том, что добавление новых строк в *tt.xs(i)* с помощью .loc не работает.

tt.xs(i).loc[time_index] = borrowed
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...