Ключевая ошибка: «Ни один из [Index([‘Company’], dtype=’object’)] не находится в [столбцах]»

#pandas #pandas-groupby #graphing

#pandas #pandas-groupby #построение графиков

Вопрос:

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

Мои данные выглядят так: необработанные данные

Мой код такой:

 import pandas

data= pandas.read_csv(r"C:UsersStevenDesktopELNResults2.csv", nrows=(145))
criteriadata= data.groupby("Criteria")
criteriadata.boxplot(column=['Company'])
 

Я получаю эту ошибку:

 KeyError: "None of [Index(['Company'], dtype='object')] are in the [columns]"
 

Однако, когда я запускаю это.

 print(data.columns)
 

Я понимаю это:

 Index(['Company', 'Criteria', 'Ranking'], dtype='object')
 

Итак, мне кажется, что компания находится в столбцах??

Я начинающий пользователь, поэтому я все еще учусь. В качестве примечания мне не нравится, как во всех найденных мной руководствах используется набор данных, созданный в скрипте, таком как linspace, в отличие от импорта наборов данных. Я обнаружил, что это не имитирует то, что происходит в реальной жизни, работая в биотехнологической отрасли, я обнаружил, что 99,9% всех данных поступает в формате csv.

Комментарии:

1. пожалуйста, разместите свои данные и т. df.to_dic() Д

Ответ №1:

При использовании boxplot метода для pandas groupby column аргумент ссылается на столбец в фрейме данных, который содержит числовые данные, на основе которых будут строиться распределения. Я полагаю, что вам нужно передать "Company" by аргумент вместо того, чтобы передавать его column аргументу, тогда "Ranking" как должно быть имя столбца, которое должно быть передано column аргументу (хотя в этом случае использование column аргумента не имеет значения, поскольку у вас остается только один столбец, содержащий числовые данные).). Это можно резюмировать следующим образом:

criteriadata.boxplot(column="Ranking", by="Company")