Ответ 1
Это изменение, внесенное в v0.21.1
, и было v0.21.1
объяснено в документах -
Раньше выбор со списком меток, где отсутствовала одна или несколько ярлыков, всегда была бы успешной, возвращая
NaN
для отсутствующих меток. Теперь будет показаноFutureWarning
. В будущем это повыситKeyError
(GH15747). Это предупреждение будет запускаться наDataFrame
илиSeries
для использования.loc[]
или[[]]
при передаче списка меток с по меньшей мере 1 отсутствующей меткой.
Например,
df
A B C
0 7.0 NaN 8
1 3.0 3.0 5
2 8.0 1.0 7
3 NaN 0.0 3
4 8.0 2.0 7
Попробуйте какую-нибудь нарезку, как вы делаете -
df.loc[df.A.gt(6), ['A', 'C']]
A C
0 7.0 8
2 8.0 7
4 8.0 7
Нет проблем. Теперь попробуйте заменить C
несущей меткой столбца -
df.loc[df.A.gt(6), ['A', 'D']]
FutureWarning: Passing list-likes to .loc or [] with any missing label will raise
KeyError in the future, you can use .reindex() as an alternative.
A D
0 7.0 NaN
2 8.0 NaN
4 8.0 NaN
Таким образом, в вашем случае ошибка возникает из-за ярлыков столбцов, которые вы передаете loc
. Взгляните на них еще раз.