Невозможно построить нарезанный фрейм данных; KeyError в 'ColumnName' - PullRequest
0 голосов
/ 14 июля 2020

Я новичок в python и пытаюсь создать простой линейный график из фрейма данных

фрейм данных

и при попытке использовать следующую команду я получаю следующую ошибку «KeyError: RegionName». Из того, что я видел, эта ошибка означает, что имя столбца в моем случае не существует, что, очевидно, не так. Также обратите внимание, что этот фрейм данных был создан как часть другого.

Код:

import pandas as pd
import numpy as np
import pyodbc 
import matplotlib.pyplot as plt

region_data = pd.merge(q4, q5, on = 'AeId')

#refine the columns --> cut slack
region_data_refined = region_data.drop(['TimePeriodId_y', 'AeName', 'RgoCode','AeId', 'IsActive','RegionCode'], axis=1)

#get region totals
region_totals = region_data_refined.groupby(['BenefitCode', 'RegionName']).sum()

region_totals.drop('TimePeriodId_x', axis=1, inplace=True)

region_pct_26 = region_totals.iloc[6:12, :]
region_pct_26['Opp_Lives_pct'] = ((region_pct_26.Lives / region_pct_26.Lives.sum())*100).round(2)

region_pct_26.plot(x ='RegionName', y='Opp_Lives_pct', kind = 'line')   

1 Ответ

1 голос
/ 14 июля 2020

Проблема возникает, когда вы используете функцию groupby(). RegionName становится индексом более низкого уровня. При попытке построить график с использованием region_pct_26.plot() столбец RegionName больше не является «столбцом». Это часть индекса фрейма данных.

>>> region_pct_26.unstack(level=0).plot(y='Opp_Lives_pct', kind = 'line')

Если проблема не исчезнет, ​​попробуйте

>>> region_pct_26.unstack(level=0).reset_index().plot(x='RegionName', y='Opp_Lives_pct', kind = 'line')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...