Есть ли функция pandas для получения None вместо ошибки индекса? - PullRequest
0 голосов
/ 28 мая 2020

У меня есть DataFrame pandas (версия 0.25) с некоторыми индексами. Когда я ищу индекс, отсутствующий в DataFrame, я (конечно) получаю KeyError.

import pandas as pd
df = pd.DataFrame({'age': [50, 40]}, index = ['alice', 'bob'])
# works, returns age 50:
df.loc['alice']
# does not work, gives KeyError

Я хотел бы иметь что-то вроде get для словарей ({'alice': 50}.get('charlie') ) для DataFrames. Лучшее, что я смог найти, было

df.loc['charlie'] if 'charlie' in df.index else None

Ответы [ 2 ]

1 голос
/ 28 мая 2020

Вы можете использовать DataFrame.get, который ведет себя так же, как и ванильный Python dict.get метод. Таким образом, он вернет None, если ключ не существует. Мы используем Transpose, потому что это метод индексации столбца.

df.T.get('charlie')

# returns None
df.T.get('alice')

age    50
Name: alice, dtype: int64
1 голос
/ 28 мая 2020

Вы можете использовать reindex:

df.reindex(['Charlie'])

Вывод:

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