Есть ли способ в Pandas получить значение по умолчанию при доступе к строке по позиции? Я знаю функцию .get()
, но это работает при поиске по индексу.get() для значений по умолчанию в серии Pandas, используя позицию
Ниже приводится описание того, что я хочу. DataFrame:
In [24]: df
Out[24]:
col1
idx
20 A
21 B
22 C
23 D
24 E
Поиск по индексу и получить значение по умолчанию работает отлично:
In [25]: df['col1'].get(23, 'the_default_value')
Out[25]: 'D'
In [26]: df['col1'].get(28, 'the_default_value')
Out[26]: 'the_default_value'
Но не кажется, эквивалентный способ поиска по позиции. Я могу использовать .iloc()
, но это не помогает получить значение по умолчанию, если эта строка отсутствует. Например.
In [57]: df['col1'].iloc[2]
Out[57]: 'C'
In [58]: df['col1'].iloc[6]
...
IndexError: single positional indexer is out-of-bounds
Я могу установить его с помощью try...except
или заранее проверить, существует ли значение или нет, но есть более чистый способ сделать это, как .iget()
(как .loc
против .iloc
)?
Вы можете просто сбросить индекс, чтобы он начинался с '0' – EdChum
Да, это возможно. Но если мне нужен фактический индекс, это будет означать возврат туда и обратно сброса индекса (одно из применений находится внутри цикла). – vk1011