【发布时间】:2021-12-21 18:19:42
【问题描述】:
此代码生成以下图:
df.groupby(['bin'],observed=True)['Clicked'].value_counts(ascending=True,normalize=True).unstack().plot(kind='bar' ,stacked=True,color=['C0','C3'],alpha=0.8)
plt.legend(title="Clicked on:")
plt.title("")
这是unstack()之后的sn-p数据:
Clicked Real & Rep Rep only
bin
(-0.5, -0.45] 0.333333 0.666667
(-0.4, -0.35] NaN 1.000000
(-0.25, -0.2] 0.500000 0.500000
(-0.15, -0.1] 0.400000 0.600000
(-0.1, -0.05] 0.400000 0.600000
(-0.05, 0.0] 0.488889 0.511111
(0.0, 0.05] 0.228782 0.771218
(0.05, 0.1] 0.141818 0.858182
(0.1, 0.15] 0.067797 0.932203
(0.15, 0.2] 0.121622 0.878378
(0.2, 0.25] 0.054054 0.945946
(0.25, 0.3] 0.089744 0.910256
如您所见,某些 bin 没有观测值 [(-0.45,-0.4),(-0.35,-0.3),(-0.3,-0.25),(-0.2,-0.15)]。
我该怎么做才能在图中显示丢失的垃圾箱(空)?
我必须将 observed=True 包含在 groupby 中,否则我会出错。
【问题讨论】:
-
请运行 df.groupby(['bin'],observed=True)['Clicked'].value_counts(ascending=True,normalize=True).unstack() 在您的源数据上并发布结果。我想在 plot 之前需要一些中间步骤,但是我没有时间自己生成这些数据。
-
@Valdi_Bo 完成 :)