Как написать функцию в Python, чтобы получить значения строк в процентах от сгруппированных общих значений? - PullRequest
0 голосов
/ 24 апреля 2019

У меня есть датафрейм, содержащий следующие столбцы:

    Date    | Origin  | Destination | Service | Demand
    April 4 | Chicago | Toronto     | Ground  |250
    April 4 | Chicago | Tampa       | Ground  |250
    April 5 | Chicago | Orlando     | Air     |100
    April 5 | Chicago | Seattle     | Air     |400

Я хотел бы написать функцию на Python или использовать функцию pandas, чтобы получить столбец спроса в виде процента от общего числа по дате и'Origin'

Итак, если у меня есть следующая групповая группа:

  df.groupby(['Date','Origin'])['Demand'].sum().reset_index() 

, дающая мне следующее:

         Date    | Origin  | Demand
         April 4 | Chicago | 500
         April 5 | Chicago | 500

Мой желаемый результат:

    Date    | Origin  | Destination | Service | Demand | Percentage
    April 4 | Chicago | Toronto     | Ground  |250     | 0.5
    April 4 | Chicago | Tampa       | Ground  |250     | 0.5
    April 5 | Chicago | Orlando     | Air     |100     | 0.2
    April 5 | Chicago | Seattle     | Air     |400     | 0.8

как мне написать что-нибудь, что даст мне столбец процента?

1 Ответ

1 голос
/ 24 апреля 2019

Проверка с transform

df['Pct']=df['Demand']/df.groupby(['Date', 'Origin'])['Demand'].transform('sum')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...