панды отбрасывают строку на основе индекса против ix

#python #pandas #dataframe

#python #панды #фрейм данных

Вопрос:

Я пытаюсь удалить строку фрейма данных pandas на основе ее индекса (а не местоположения).

Фрейм данных выглядит следующим образом

                       DO  
129518  a developer and   
20066   responsible for   
571     responsible for   
85629   responsible for   
5956    by helping them   
  

(К вашему СВЕДЕНИЮ: «DO» — это имя столбца)

Я хочу удалить строку, в которой ее индекс равен 571, поэтому я так и сделал:

 df=df.drop(df.index[571])
  

затем я проверяю
df.ix[571]

тогда какого черта он все еще там!

Итак, я подумал: «Хорошо, может быть, index и ix разные!»

 In [539]: df.index[571]
17002
  

Мой вопрос

1) Что такое индекс? (по сравнению с ix)

2) Как мне удалить строку индекса 571 с помощью ix?

Ответ №1:

Вы должны drop получить желаемое значение непосредственно из индекса:

 df.drop(571, inplace=True)
  

Ответ №2:

 df.index
  

Является индексом фрейма данных.

 df.index[571]
  

Является 571-м элементом индекса. Затем вы отбросили все, что это было. Вы не хотели позиционного, но это то, что вы сделали.

Используйте ответ @John Zwinck