Перейти к содержимому

Как сбросить индекс в pandas

  • автор:

Как сбросить индекс в Pandas DataFrame(с примерами)

Вы можете использовать следующий синтаксис для сброса индекса в pandas DataFrame:

df.reset_index(drop= True , inplace= True ) 

Обратите внимание на следующие аргументы:

  • drop : Указание True запрещает pandas сохранять исходный индекс в виде столбца в DataFrame.
  • inplace : Указание True позволяет pandas заменить индекс в исходном DataFrame вместо создания копии DataFrame.

В следующих примерах показано, как использовать этот синтаксис на практике.

Пример 1: сбросить индекс и удалить старый индекс

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd #define DataFrame df = pd.DataFrame(, index=[0, 4, 3, 5, 2, 1, 7, 6]) #view DataFrame print(df) points assists rebounds 0 25 5 11 4 12 7 8 3 15 7 10 5 14 9 6 2 19 12 6 1 23 9 5 7 25 9 9 6 29 4 12 

В следующем коде показано, как сбросить индекс DataFrame и полностью удалить старый индекс:

#reset index df.reset_index(drop= True , inplace= True ) #view updated DataFrame print(df) points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 5 23 9 5 6 25 9 9 7 29 4 12 

Обратите внимание, что индекс был сброшен, и значения в индексе теперь находятся в диапазоне от 0 до 7.

Пример 2: сбросить индекс и сохранить старый индекс как столбец

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd #define DataFrame df = pd.DataFrame(, index=['A', 'C', 'D', 'B', 'E', 'G', 'F', 'H']) #view DataFrame print(df) points assists rebounds A 25 5 11 C 12 7 8 D 15 7 10 B 14 9 6 E 19 12 6 G 23 9 5 F 25 9 9 H 29 4 12 

В следующем коде показано, как сбросить индекс DataFrame и сохранить старый индекс в виде столбца в DataFrame:

#reset index and retain old index as a column df.reset_index(inplace= True ) #view updated DataFrame print(df) index points assists rebounds 0 A 25 5 11 1 C 12 7 8 2 D 15 7 10 3 B 14 9 6 4 E 19 12 6 5 G 23 9 5 6 F 25 9 9 7 H 29 4 12 

Обратите внимание, что индекс был сброшен, и значения в индексе теперь находятся в диапазоне от 0 до 7.

Также обратите внимание, что старый индекс (с буквами) сохраняется как новый столбец в DataFrame под названием «индекс».

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные операции в pandas:

Как удалить столбец индекса в Pandas (с примерами)

Иногда вы можете захотеть удалить столбец индекса pandas DataFrame в Python.

Поскольку у pandas DataFrames и Series всегда есть индекс, вы не можете удалить индекс, но вы можете сбросить его, используя следующий фрагмент кода:

df.reset_index(drop= True , inplace= True ) 

Например, предположим, что у нас есть следующий pandas DataFrame с индексом букв:

import pandas as pd #create DataFrame df = pd.DataFrame() #set index of DataFrame to be random letters df = df.set_index([pd.Index(['a', 'b', 'd', 'g', 'h', 'm', 'n', 'z'])]) #display DataFrame df points assists rebounds a 25 5 11 b 12 7 8 d 15 7 10 g 14 9 6 h 19 12 6 m 23 9 5 n 25 9 9 z 29 4 12 

Мы можем использовать функцию reset_index() , чтобы сбросить индекс в последовательный список чисел:

#reset index df.reset_index(drop= True , inplace= True ) #display DataFrame df points assists rebounds 0 25 5 11 1 12 7 8 2 15 7 10 3 14 9 6 4 19 12 6 5 23 9 5 6 25 9 9 7 29 4 12 

Обратите внимание, что индекс теперь представляет собой список чисел от 0 до 7.

Как упоминалось ранее, индекс на самом деле не является столбцом. Таким образом, когда мы используем команду shape , мы видим, что DataFrame имеет 8 строк и 3 столбца (в отличие от 4 столбцов):

#find number of rows and columns in DataFrame df.shape (8, 3) 

Бонус: удаление индекса при импорте и экспорте

Часто вам может понадобиться сбросить индекс кадра данных pandas после его чтения из файла CSV. Вы можете быстро сбросить индекс при его импорте, используя следующий фрагмент кода:

df = pd.read_csv('data.csv', index_col= False ) 

И вы можете убедиться, что столбец индекса не записывается в файл CSV при экспорте, используя следующий фрагмент кода:

df.to_csv('data.csv', index= False ) 

Обновить индекс после сортировки фрейма данных

Мне нужно сначала отсортировать его по x , а только секунда y :

df2 = df.sort(["x", "y"])
 x y 0 0 0 3 0 1 6 0 2 1 1 0 4 1 1 7 1 2 2 2 0 5 2 1 8 2 2 

Как изменить индекс так, чтобы он снова восходил. То есть как я получу это:

 x y 0 0 0 1 0 1 2 0 2 3 1 0 4 1 1 5 1 2 6 2 0 7 2 1 8 2 2 

Я пробовал следующее. К сожалению, он вообще не меняет индекс:

df2.reindex(np.arange(len(df2.index))) 

Lemming 16 окт. 2015, в 10:29

Поделиться

Поделиться:

2 ответа

Лучший ответ

Вы можете reset использовать индекс reset_index , чтобы вернуть индекс по умолчанию 1, 2. n ( и используйте drop=True , чтобы указать, что вы хотите удалить существующий индекс вместо добавления его в качестве столбца в ваш фрейм данных):

In [19]: df2 = df2.reset_index(drop=True) In [20]: df2 Out[20]: x y 0 0 0 1 0 1 2 0 2 3 1 0 4 1 1 5 1 2 6 2 0 7 2 1 8 2 2 

joris 16 окт. 2015, в 09:12

Поделиться

Вы можете установить новые индексы, используя set_index :

df2.set_index(np.arange(len(df2.index))) 
 x y 0 0 0 1 0 1 2 0 2 3 1 0 4 1 1 5 1 2 6 2 0 7 2 1 8 2 2 

Gregg 16 окт. 2015, в 08:48

Поделиться

Это не нужно, используйте reset_index()

smci 16 нояб. 2016, в 16:48

Ещё вопросы

  • 1 Линия между двумя перетаскиваемыми точками на холсте matplotlib pyqt5
  • 0 Как вставить элементы в массив контроллера, используя форму с полями ввода, и это будет отображаться в представлении
  • 1 Привязать строку из .resx ResourceDictionary к TextBlock.Text, используя ключ индекса
  • 0 Первый пункт в моем выпадающем списке выделен
  • 1 Как поделиться кодом котлина в IntelliJ IDEA между рабочим столом, android и сервером?
  • 1 Node Express JS — обработка одновременных POST-запросов к серверу
  • 0 Показывать электронные письма из Gmail на веб-сайте SaaS
  • 0 scanf может читать только 3 символа в 5-позиционном массиве символов
  • 1 Приложение работает нормально при отладке на тестовом устройстве, но не в apk релиза, оно не получает переменные post.class из firebase
  • 1 Удалить все изображения из файлов DOCX
  • 1 Поток выполнения веб-приложения?
  • 1 Захватите строку фрейма данных pandas на основе значения в этой строке и нескольких предыдущих строк
  • 1 Импорт .txt файла с запятыми и без пробелов между числами
  • 0 хранение глобальных переменных при уничтожении или выгрузке
  • 1 MVC 5 Динамическая панель навигации 2 уровня
  • 0 Разделите вывод .serialize () и создайте оператор вставки для каждой разделенной части
  • 0 Несколько экземпляров свойства перехода среди классов, используемых в одном элементе
  • 0 Войдите в систему с помощью JWT (веб-токена Json) и приложения Devise in Rails
  • 1 Атрибуты метода в WebForms
  • 0 Недостаточно аргументов в строке, несколько предложений IN со значениями списка в запросе MySQL из Python
  • 0 Создать временные значения в AngularJS
  • 1 графическое изображение простых лиц из базы данных не загружается
  • 0 HTTP-фейсбук в PHP, возвращающий массив, а не JSON
  • 1 Discord.py Требуется ежедневная бонусная помощь
  • 1 С точки зрения использования памяти, в чем разница между этими двумя массивами в JavaScript?
  • 0 HTML / PHP формы сообщений (случайные) значения в таблицу SQL
  • 1 Определить, находится ли текущее время в нескольких временных диапазонах
  • 1 Элемент Дарт: вызов функции на встроенном объекте JS
  • 0 Открыть модал в определенную дату / время [дубликаты]
  • 1 GoogleSignInClient.signOut вылетает с: «Вызовите connect () и дождитесь вызова onConnected ()»
  • 1 Как суммировать массивы текстовых полей на лету в Java
  • 1 Невозможно создать каталог и сохранить снимок, сделанный камерой, в хранилище / emulated / 0
  • 0 Как сравнить две даты?
  • 1 Javascript отображаемое имя div
  • 1 Каков наилучший алгоритм для получения повторения подстроки длины k в строке в кратчайшие сроки? [Дубликат]
  • 1 Невозможно отправить HTTP-запросы по износу Bluetooth
  • 1 Как выровнять текстовое поле и поле кнопки в HFM в BlackBerry
  • 0 Модель Cakephp с несколькими статусами
  • 1 Как я могу измерить ширину и высоту повернутого элемента в Javascript?
  • 0 .htaccess vs chmod в чем разница с точки зрения разрешения
  • 0 href связанный swfobject (без поддержки clicktag)
  • 1 Разница в форматировании подписки на события
  • 0 OpenGL шейдер направленного света зеркальное отражение увеличивается с расстоянием
  • 1 Неправильный вывод в моей задаче, не могу ее решить
  • 1 Javascript дает недействительный месяц, когда месяц установлен на 5
  • 1 Цвет по 3 переменным — треугольник Максвелла
  • 0 Веб-браузер компилирует элементы CSS в алфавитном порядке
  • 1 HTML письмо с ссылкой на изображение в виде base64 String
  • 1 Веб-формы .NET обновляют контент на стороне сервера
  • 0 Невозможно получить объектную модель в Angular

Сброс индекса в Pandas – Reset index DataFrame

Reset index DataFrame используется в Pandas для сброса индекса с помощью команды «reset_index». Если у DataFrame есть MultiIndex, этот метод может удалить один или несколько уровней.

Синтаксис

DataFrame.reset_index(self, level=None, drop=False, inplace=False, col_level=0, col_fill='')

Параметры

  • level : Относится к int, str, tuple или list, значение по умолчанию None.

Он используется для удаления заданных уровней из индекса, а также по умолчанию удаляет все уровни.

  • drop : относится к логическому значению, значение по умолчанию False.

Он сбрасывает индекс к целочисленному индексу по умолчанию.

  • inplace : относится к логическому значению, значение по умолчанию False.

Он используется для изменения DataFrame на месте и не требует создания нового объекта.

  • col_level : относится к int или str, значение по умолчанию 0.

Он определяет уровень, на котором вставляются метки, если столбец имеет несколько меток.

  • col_fill : относится к объекту, значение по умолчанию ”.

Он определяет, как называются другие уровни, если столбцы имеют несколько уровней.

Пример

info = pd.DataFrame([('William', 'C'), ('Smith', 'Java'), ('Parker', 'Python'), ('Phill', np.nan)], index=[1, 2, 3, 4], columns=('name', 'Language')) info info.reset_index()
index name Language 0 1 William C 1 2 Smith Java 2 3 Parker Python 3 4 Phill NaN

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *