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
答案 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