KeyError: "['что-то' 'что-то'] не в индексе" - PullRequest
0 голосов
/ 04 мая 2020

В настоящее время я сталкиваюсь с этой ошибкой:

KeyError: "['Malaysia' 'Singapore'] not in index"

с ошибкой, указывающей на:

---> 37 wide_data = wide_data [['Malaysia', 'Singapore']]

После проверки wide_data с print(wide_data.columns) он возвращает:

MultiIndex([( 'total_cases',  'Malaysia'),
            ( 'total_cases', 'Singapore'),
            (   'new_cases',  'Malaysia'),
            (   'new_cases', 'Singapore'),
            ('total_deaths',  'Malaysia'),
            ('total_deaths', 'Singapore'),
            (  'new_deaths',  'Malaysia'),
            (  'new_deaths', 'Singapore')],
           names=[None, 'location'])

Оба существуют. Я не уверен, где мой код работает неправильно.

Ниже приведены мой фрагмент кода и Набор данных используемый:

import plotly.express as px

df = pd.read_csv('covid-data-2020.csv', index_col='date', parse_dates=True)
data = df[df.location.isin(['Malaysia', 'Singapore'])]

wide_data = data.pivot(columns='location', values=list(data.columns[2:6]))
wide_data = wide_data[['Malaysia','Singapore']]
wide_data.reset_index(level=0, inplace=True)
fig = px.line(wide_data.melt(id_vars='date'), x='date', y='value', color='location')
fig.update_yaxes(title='Malaysia vs Singapore')
fig.show()

Ответы [ 2 ]

2 голосов
/ 04 мая 2020

Пытаетесь ли вы сравнить рост общего числа случаев / смертей в Малайзии и Сингапуре? Если это так, может быть вместо:

wide_data = wide_data[['Malaysia','Singapore']]

Вы используете:

wide_data = wide_data[['total_cases']]

, что даст ожидаемый график.

1 голос
/ 04 мая 2020

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

wide_data.columns = wide_data.columns.swaplevel(0,1)

перед выполнением

wide_data = wide_data[['Malaysia','Singapore']]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...