统计和 Pandas:Pandas 中的 value_counts() 中的规范化意味着什么

Statistics and Pandas: What normalization means in value_counts() in Pandas

问题不在于编码,而在于了解规范化在统计和数据相关性方面的含义 这是我正在做的一个例子。 没有归一化:

plt.subplot(111)
plt.plot(df['alcoholism'].value_counts(), marker='o')
plt.plot(df.query('no_show =="Yes"')['alcoholism'].value_counts(), color='black')
plt.show();

标准化后:

plt.subplot(111)
plt.plot(df['alcoholism'].value_counts(normalize=True), marker='o')
plt.plot(df.query('no_show =="Yes"')['alcoholism'].value_counts(normalize=True), color='black')
plt.show();

哪个更好地关联了标准化或未标准化的值?或者这是一个完全错误的想法? 我是数据和 pandas 的新手,所以请原谅我的错误代码、链接、评论、风格 :)

正如您在标准化时看到的(第二个图),对于绘制的每条线,两个点的总和等于 1。规范化为您提供每个值的 出现次数,而不是 数量 出现次数。

这是 the doc 所说的:

normalize : bool, default False
    Return proportions rather than frequencies.

  • value_counts() 可能 returns 类似于:

    0    110000
    1      1000
    dtype: int64
    
  • value_counts(normalize=True)可能returns类似:

    0    0.990991
    1    0.009009
    dtype: float64
    

换句话说,规范化和非规范化之间的关系可以检查为:

>>> counts = df['alcoholism'].value_counts()
>>> rate = df['alcoholism'].value_counts(normalize=True)
>>> np.allclose(rate, counts / counts.sum())
True

其中 允许正确比较两个浮点数系列。