如何解决统计和 Pandas:Pandas 中 value_counts() 中的标准化意味着什么
问题不在于编码,而在于理解归一化在数据统计和相关性方面的含义 这是我正在做的一个例子。 没有标准化:
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。标准化是为您提供每个值的发生率,而不是出现次数。
the doc 说的是:
normalize : bool,默认为 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
允许正确比较两个浮点数系列。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。