Как .get_else с серией панд? - PullRequest
0 голосов
/ 08 июня 2018

У метода Pandas pd.Series.get есть параметр по умолчанию (очень похожий на dict.get), который предполагает, что я должен иметь возможность использовать его для поиска элемента в его индексе и возвращает значение строки, но возвращает значение по умолчанию при запросене в индексе.

Действительно, это работает (и эквивалентно .loc, где default = NAN):

# x10

maptable = pd.Series(      [100, 110, 120, 130],
                     index=[10,  11,  12,  13]).sort_index()

query_vals = pd.Series([11,12,15], index=['A', 'B', 'C'])

# Passing list-likes to .loc or [] with any missing label will raise KeyError in the future, you can use .reindex() as an alternative.
print maptable.get(query_vals, float("nan"))
11    110.0
12    120.0
15      NaN

# Passing list-likes to .loc or [] with any missing label will raise KeyError in the future, you can use .reindex() as an alternative.
print maptable.loc[query_vals]

... но жалуется, что «Передача списка - нравится .locили [] с любой отсутствующей меткой вызовет KeyError в будущем, вы можете использовать .reindex () в качестве альтернативы. "

Не является ли цель .get (over .loc) именно для того, чтобы разрешить поиск снедостающие индексы.

Что я должен сделать здесь, чтобы избежать этого предупреждения?Я не уверен, как .reindex помогает.

1 Ответ

0 голосов
/ 08 июня 2018

reindex может быть передано в виде массива index меток.Если метка находится в индексе, возвращается значение.Если это не так, то (по умолчанию) возвращается NaN:

In [17]: maptable.reindex(query_vals)
Out[17]: 
11    110.0
12    120.0
15      NaN
dtype: float64

In [18]: maptable.reindex(query_vals, fill_value='foo')
Out[18]: 
11    110
12    120
15    foo
dtype: object

FutureWarning:

FutureWarning: передача списка лайков в .loc или []если в будущем пропущенная метка вызовет KeyError, вы можете использовать .reindex () в качестве альтернативы.

См. документацию здесь: https://pandas.pydata.org/pandas-docs/stable/indexing.html#deprecate-loc-reindex-listlike

рекомендует использовать .reindex вместо .get или .loc.

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