我想返回与此类似的情节,但以堆叠的条形图(女性堆叠在男性上方)为例:
第1/2组为年份,男女为来源(例如Facebook,Google Ads等)。
这是我为图表编写的代码:
grouped = filtered.loc[filtered.groupby('anonymous_id')['utm_source']
.apply(lambda x: x.first_valid_index())]\
.dropna(subset=['utm_source'])
grouped_counts = grouped.groupby(['year','utm_source'])['Won'].value_counts(normalize=True).mul(100).unstack().plot.bar(stacked=True)
以下是我的数据示例:
year utm_source Won anonymous_id
0 2018 NaN No 0000f8ea-3aa6-4423-9247-1d9580d378e1
36 2018 google_ads No 0008cb14-c833-494f-aa33-2caca8f91ca1
45 2018 NaN No 000223b0-5278-418d-b9b1-b384024d31a9
46 2018 NaN No 00037bad-bb90-4836-a9fa-61cbd44e480f
49 2019 NaN Yes 0000a6a0-00bc-475f-a9e5-9dcbb4309e78
50 2019 NaN Yes 0000a6a0-00bc-475f-a9e5-9dcbb4309e78
51 2019 NaN Yes 0000a6a0-00bc-475f-a9e5-9dcbb4309e78
52 2019 NaN Yes 0000a6a0-00bc-475f-a9e5-9dcbb4309e78
53 2019 NaN Yes 0000a6a0-00bc-475f-a9e5-9dcbb4309e78
54 2019 NaN Yes 0000a6a0-00bc-475f-a9e5-9dcbb4309e78