Постоянная ошибка переименования индекса (или это индекс?) в DataFrame pandas

Вопрос или проблема

Это должно быть просто. У меня есть датафрейм pandas с датой в качестве индекса; это периодический индекс.

Когда я строю график данных, легенда упоминает “Series”, в то время как я хочу, чтобы она показывала “Тип кредита”.

Я пробовал использовать reset_index() и работать оттуда, но “Series” продолжает появляться в верхнем левом углу.

Series  Loans  Loans Housing  ...  Loans Agriculture  Loans_Other
Date                          ...                                
2018Q2  100.0      58.058425  ...          14.498113     2.123517
2018Q3  100.0      58.366364  ...          14.439221     2.097073
2018Q4  100.0      58.588861  ...          14.343509     1.917685
2019Q1  100.0      58.693234  ...          14.189217     1.964198
2019Q2  100.0      58.936376  ...          14.187947     1.848167

Series

Используйте rename_axis().

df.rename_axis("Тип кредита", axis=1)

Ответ или решение

Для решения вашей проблемы с переименованием индекса в DataFrame библиотеки pandas и корректным отображением легенды при построении графика, вы можете использовать метод rename_axis(). Давайте подробнее рассмотрим ваши шаги.

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

Вот шаги, которые следует выполнить:

  1. Переименуйте ось столбцов: Чтобы изменить название, под которым отображаются ваши данные в графике, просто используйте метод rename_axis(). В вашем случае это будет выглядеть следующим образом:

    df.rename_axis("Loan type", axis=1, inplace=True)

    Здесь вы указываете, что хотите переименовать ось (axis) для столбцов (axis=1) в "Loan type". Параметр inplace=True обеспечивает изменения непосредственно в исходном DataFrame.

  2. Переведите DataFrame в формат, удобный для графиков: Если вы хотите построить график, убедитесь, что данные в DataFrame имеют корректную структуру. Например, если вы хотите построить график для всех видов займов, вам может потребоваться отфильтровать данные или переорганизовать их.

  3. Постройте график: Используйте метод .plot() для визуализации ваших данных. Например, если вы хотите построить график для столбца "Loans", можно сделать следующее:

    df['Loans'].plot(title='Loans Over Time')

Будьте внимательны, если при построении графика у вас продолжает отображаться "Series". Это может произойти, если используется имя, присвоенное отдельной серии данных. Вы можете явно задать имя легенды при построении графика:

import matplotlib.pyplot as plt

ax = df.plot(title='Loans Over Time')
ax.set_ylabel('Loan Amount')
ax.legend(['Loan type'])
plt.show()
  1. Если нужно удалить предыдущие легенды: Если после выполнения этих шагов в верхнем левом углу по-прежнему отображается "Series", убедитесь, что вы правильно очищаете график перед его построением, вызывая plt.clf() или использовавший новый экземпляр Axes.

Таким образом, окончательная версия вашего кода по изменению названия оси и правильно построенному графику будет выглядеть примерно так:

import pandas as pd
import matplotlib.pyplot as plt

# Пример вашего DataFrame
data = {
    'Loans': [100.0, 100.0, 100.0, 100.0, 100.0],
    'Loans Housing': [58.058425, 58.366364, 58.588861, 58.693234, 58.936376],
    'Loans Agriculture': [14.498113, 14.439221, 14.343509, 14.189217, 14.187947],
    'Loans_Other': [2.123517, 2.097073, 1.917685, 1.964198, 1.848167]
}

dates = pd.period_range(start='2018Q2', periods=5, freq='Q')
df = pd.DataFrame(data, index=dates)

# Переименование оси
df.rename_axis("Loan type", axis=1, inplace=True)

# Построение графика
ax = df.plot(title='Loans Over Time')
ax.set_ylabel('Loan Amount')
plt.show()

Эти шаги должны решить вашу проблему с отображением "Series" в легенде и позволить вам задать нужные названия для ваших данных.

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

Капча загружается...