Не забывайте, что у фрейма данных Pandas есть «индекс» в дополнение к его столбцам данных.Обычно это один «дополнительный» столбец целых чисел или строк, но возможны более сложные индексы, например, «многоиндексный», состоящий из более чем одного столбца.
Это можно увидеть, если вы print(matches.head())
,Первые два столбца имеют имена, которые слегка смещены, поскольку они не являются столбцами данных;они являются столбцами в самом индексе.Этот индекс фрейма данных на самом деле является мультииндексом, содержащим два столбца: rec_id_1
и rec_id_2
.
. Результат из load_febrl
кодирует идентификатор записи как индекс dfA
.Compare.compute
сохраняет индексы входных данных: вы всегда можете ожидать, что индексы исходных данных будут сохранены как многоиндексные.
Индекс фрейма данных сам по себе может быть доступен с помощью DataFrame.index
атрибут.Это возвращает Index
объект (из которых MultiIndex
является подклассом ), который в свою очередь может быть преобразован следующим образом:
Index.tolist()
: преобразовать в list
его элементов;MultiIndex
становится list
из tuple
s Index.to_series()
: преобразовать в Series
его элементов;MultiIndex
становится Series
из tuple
с Index.values
: доступ к базовым данным как NumPy ndarray
;MultiIndex
становится ndarray
из tuple
с. Index.to_frame()
: преобразовать в DataFrame
, со столбцами индекса в качестве столбцов фрейма данных
Таким образом, вы можетебыстро получить доступ к идентификаторам записей с помощью matches.index
или экспортировать их в список с помощью matches.tolist()
.
. Вы также можете использовать matches.reset_index()
, чтобы превратить столбцы индекса обратно в обычные столбцы данных.