Python Group by和总和为空白

时间:2018-12-10 23:02:45

标签: python pandas dataframe pivot pandas-groupby

Revenue by Segment and Country

我有一个数据框,其中包含按细分和国家/地区划分的收入。我想按国家/地区代码获取总收入。所以我希望输出为:

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 :(得分:1)

我假设您的空条目为NaN,如果不是 ,建议您将其设为NaN。通常的想法是在您的国家(地区)列中填写,然后删除空值,这将国家(地区)代码放置在包含数据的每一行旁边,同时删除标题行。从这一点来看,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