#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")