Set_index панд данных dataframe для списка поплавков? - PullRequest
0 голосов
/ 27 января 2019

У меня есть основной DF, а затем вспомогательный DF, который я хочу вставить в основной DF между двумя строками.Итак, индекс первого DF равен ..., 183, 184, 185, 186, 187 ... Я хочу вставить пятирядный DF между строками 185 и 186 в основном DF.

Чтобы сделать это, я пытаюсь установить для индекса sub-DF числа от 185 до 186, а затем переиндексировать, но я получаю ключевую ошибку в первой строке.

Список индексов [185.01, 185.02, 185.03, 185.04, 185.05].Ошибка «KeyError: 185.01»

Я чувствую, что это должно быть возможно на основе этого потока: Можно ли вставить строку в произвольной позиции в кадре данных, используя панд?

        # reset then set index for inserting these rows after the rest of the items for this subtest
        row_index.clear()
        row_index = [round((last_subtest_item_index + 0.01) + (x * 0.01),2) for x in range(0, var_counter)]
        print(last_subtest_item_index, row_index)
        print(new_custom_table)

        # TRY TO INSERT THE CUSTOM TABLE DF INTO THE MAIN DF AND SEE IF IT GOES IN-LINE WITH THE REST OF THAT CRF
        new_custom_table.set_index(keys = row_index, inplace = True)
        self.full_CRF = self.full_CRF.append(new_custom_table, ignore_index = False).sort_index().reset_index(drop=True)

1 Ответ

0 голосов
/ 27 января 2019

Проблема в том, что DataFrame.reset_index(keys=keys) требует, чтобы keys имел тип Series, Index или numpy.ndarray ( ссылка на документы ), но вы предоставляете ему Pythonсписок, row_index.Исправление заключается в том, чтобы обернуть список в конструктор numpy array.

Заменить эту строку:

new_custom_table.set_index(keys = row_index, inplace = True)

следующим:

new_custom_table.set_index(keys=pd.np.array(row_index), inplace=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...