Изменение всех индексов всех фреймов данных в dict - PullRequest
0 голосов
/ 14 мая 2018

У меня есть словарь со списком фреймов данных, каждый из которых имеет столбец в формате datetime (имя столбца «Datetime Format»).Я пытаюсь установить индекс каждого кадра данных для этого столбца, и у меня возникают трудности.

Я упростил проблему и попытался найти решение, моя методика не придерживается:

def test_func(dataframe):
    dataframe = dataframe.set_index('Datetime Format')
    return dataframe

test_dict = {'DF_1': df1, 'DF_2': df2}

for k, v in test_dict.items():
    v = test_func(v)

После просмотра итогового test_dict или каждого отдельного фрейма данных (df1 и df2) мне не удалось установить индексы в качестве столбца «Формат даты и времени».

Я знаю, когда делаю:

df1 = df1.set_index('Datetime Format')

работает правильно.

Посоветуйте, пожалуйста, как заставить это функционировать через список (или продиктовать в этом случае).

Спасибо!

1 Ответ

0 голосов
/ 14 мая 2018

Функция set_index возвращает новый DataFrame по умолчанию, поэтому ваши изменения не прилипают.

Есть два способа обойти это: вы можете переназначить значение dict с помощью DataFrame, возвращаемого функцией.

for k, v in test_dict.items():
    test_dict[k] = test_func(v)

Или вы можете передать аргумент inplace при вызове set_index.

def test_func(dataframe):
    dataframe = dataframe.set_index('Datetime Format', inplace=True)

Это изменит исходный DataFrame без создания новой версии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...