Превышение выбора по предупреждению на этикетке - PullRequest
0 голосов
/ 18 октября 2018

У меня есть следующее df:

       col1   col2
   A    2       3
   B    4       5 
   E    6       7

Я хотел бы сгенерировать new_df, ища интересующие меня линии, используя атрибут выбора по метке .loc.Чтобы сделать это, я сделал следующее:

new_df= df.loc[['A','B','C','D','E'],:]

Используя версию 0.19 pandas, я получил следующий вывод:

       col1   col2
   A    2       3
   B    4       5 
   E    6       7
   C   Nan     Nan
   D   Nan     Nan

Вывод Nan значений для тех значений индекса, которые непоявляются в df.

Теперь я обновил панд до 0.23 и теперь появляется следующее FutureWarning:

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

Чтобы следовать советам панд, я изменил строкукода в соответствии с рекомендациями панд:

new_df=df.loc[df.index.intersection(['A','B','C','D','E'])]

Однако теперь проблема в том, что вывод:

       col1   col2
   A    2       3
   B    4       5 
   E    6       7

, где я хотел бы, чтобы значения индекса не существовали в df чтобы появиться в new_df.

У меня есть 2 вопроса:

  • Как мне преодолеть эту проблему, чтобы получить желаемый результат, следуя рекомендациям панд и исключив FutureWarning?
  • Означает ли FutureWarning, что из-за одного дня в другой будет возникать ошибка KeyError, или вам придется обновить версию pandas для возникновения ошибки?

1 Ответ

0 голосов
/ 18 октября 2018

Я думаю, вам нужно reindex для избежания ошибки:

new_df= df.reindex(['A','B','C','D','E'])
print (new_df)
   col1  col2
A   2.0   3.0
B   4.0   5.0
C   NaN   NaN
D   NaN   NaN
E   6.0   7.0

Означает ли FutureWarning, что из-за одного дня в другой будет возникать ошибка KeyError, или что выпришлось бы обновлять версию pandas для возникновения ошибки?

Необходимо обновить pandas до будущей версии для повышения ошибки.

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