незначительная проблема с моей головой. У меня есть датафрейм, подобный следующему:
Number Title
12345678 A
34567890-S B
11111111 C
22222222-L D
Это читается из файла Excel с использованием pandas в python, затем индекс устанавливается в первый столбец:
db = db.set_index(['Number'])
Затем я ищу название на основе номера:
lookup = "12345678"
title = str(db.loc[lookup, 'Title'])
Однако ... Хотя что-либо с постфиксом "-Something" работает, что-либо без него не может найти местоположение (например, 12345678 не найдет ничего, 34567890-S найдет). Единственное, что мне кажется, это то, что я смотрю как строки или целые числа, но я попробовал несколько вещей (преобразование таблицы во все строки, изменение loc на iloc, ix и т. Д.), Но пока не повезло.
Есть идеи? Спасибо:)
ОБНОВЛЕНИЕ: Таким образом, попытка сделать это с нуля не приводит к тому же самому поведению (создание тестовой базы данных, по-видимому, просто устанавливает все как строки), однако импорт из CSV приводит к приведенному выше, и ...
Поиск "12345678" (как строка) не находит его, но 12345678 как int будет. Аналогично и для других. Таким образом, фрейм данных сопоставляет только чистые числа в индексе с целыми числами, а все остальное - со строками.
Кроме того, я не могу не искать постфикс, поскольку у меня есть несколько строк с различным постфиксом, например, 34567890-S, 34567890-L, 34567890-X.