Панды: Сюжет Пирог, Сюжеты - PullRequest
0 голосов
/ 09 октября 2018

У меня есть df, который выглядит так:

+---------+---------------------------------------------------------+-------------+
| Product |                        Features                         | Profits USD |
+---------+---------------------------------------------------------+-------------+
| ABC     | Feature A1|Feature B5|Feature D4                        | 123,000     |
| DEF     | Feature B8|Feature C3                                   | (23,000)    |
| GHI     | Feature B5|Feature B8|Feature D7|Feature F5|Feature T6  | 1,435,000   |
+---------+---------------------------------------------------------+-------------+

Я пытаюсь сделать следующее:

  • Создать отдельные столбцы для каждой функции;
  • Рассчитать общую прибыль для каждого объекта;
  • Построить круговую диаграмму, используя Python> Pandas, показывающий нисходящий список объектов на прибыль +%.

Мой метод, хотя и не логичный,это добавить прибыль вместе для каждой функции для каждой линии.Таким образом, для продукта ABC: функция прибылей A1 = 123 000, функция прибылей B5 = 123 000 и т. Д.

На данный момент у меня есть следующий код для вычисления разбиения объектов на несколько столбцов с последующим группированием по прибыли:

Features = (df.Features.str.split('|', expand=True)
        .stack()
        .to_frame(name='Feature')
        )

Features.index = Features.index.droplevel(1)

Features_profits = (Features.join(df['Profits USD'])
   .groupby('Feature')
   .sum()
   .sort_values('Profits USD', ascending = False))

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

Features_profits.plot(kind='pie', autopct='%1.1f%%', label='Feature', figsize =(10,10))

Output > ValueError: pie requires either y column or 'subplots=True'

Я также попытался:

Features_profits
.stack().value_counts()
.plot(kind='pie', autopct='%1.1f%%', label='Feature', figsize =(10,10))

Однако круговая диаграмма результата для приведенного выше кода занимаетСтолбец Прибыль в долларах США в виде меток / круговых ломтиков.

Полагаю, одним из способов было бы заменить значение в Прибыль в долларах внутри каждого столбца объектов, однако я предполагаю, что для этого должен быть более элегантный способ.

Я застрял, и любая помощь будет признательна.

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