问题不在于编码,而在于理解规范化在统计和数据相关性方面的含义 这是我正在做的一个例子。 没有归一化:
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();
哪个更好地关联有或没有归一化的值?或者这是一个完全错误的想法? 我是数据和熊猫的新手,所以请原谅我糟糕的代码、链接、评论、风格 :)
正如您在归一化时看到的(第二个图),对于绘制的每条线,两个点的总和等于 1。归一化为您提供每个值出现的rate,而不是出现的number。
这是医生说的:
normalize : bool, default False
返回比例而不是频率。
value_counts()
可能返回如下内容:
0 110000
1 1000
dtype: int64
和
value_counts(normalize=True)
可能会返回类似的东西:
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
np.allclose
允许正确比较两个系列的浮点数。