Python Group by и сумма с пробелом - PullRequest
0 голосов
/ 11 декабря 2018

Доход по сегментам и странам

У меня есть фрейм данных с доходами по сегментам и по странам.Я хочу получить общий доход по коду страны.Поэтому я хочу, чтобы вывод был:

Country  Revenue    
FR      26.38      
AE      12.02

Вот как выглядит фрейм данных:

Country      Segment         Revenue    
FR           
         Digital Games        $2.40
         Music                $20.79
         Health and Fitness   $0.46
         Tech Enthusiasts     $2.73
AE     
         Digital Games        $9.99
         Games and Toys       $2.03
AT     
         Entertainment-Music  $0.09
AU
         Shopping             $52.45
         Auto Enthusiasts     $7.86
         Auto Owners          $25.92
         Culture and Arts     $8.04
         Higher Education     $25.81
         Digital Games        $2.60
         Games and Toys       $6.12

1 Ответ

0 голосов
/ 11 декабря 2018

Я предполагаю, что ваши пустые записи NaN, если они не , я советую вам сделать их NaN.Общая идея состоит в том, чтобы заполнить foward в столбце вашей страны, а затем сбросить нулевые значения, что помещает код страны рядом с каждой строкой, содержащей данные, при удалении строки заголовка.groupby + sum - простая операция с этой точки.


ffill + dropna + groupby

d = dict(
    Country=df.Country.ffill(),
    Revenue=df.Revenue.str.strip('$').astype(float)
)

df.assign(**d).dropna().groupby('Country')['Revenue'].sum()

Country
AE     12.02
AT      0.09
AU    128.80
FR     26.38
Name: Revenue, dtype: float64
...