Как сбросить индекс в 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