美文网首页
DataFrame.value_counts, pandas1.

DataFrame.value_counts, pandas1.

作者: 枫居住的街 | 来源:发表于2020-08-28 13:33 被阅读0次

value_counts在pandas早先版本中是pandas.Series的函数,功能是统计这一列Series中各个元素的出现次数,并作为另一个Series返回。

在新版本pandas中增加了DataFrame的value_counts功能。

DataFrame.value_counts简介

开始的印象是,pandas会统计整个DataFrame中所有元素出现次数,并作为一个Series返回。

而实际上并不是的,它考虑到不同列数据类型可能不一样,因此返回的是一个很奇怪的结构:一个MultiIndex的Series。

下面示例做说明:

官网地址:https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.value_counts.html?highlight=value_counts

a = pd.DataFrame(data=0, index=['1','2','3'],columns=['东城站','王府井'])

a

(原谅我贴这么丑的图)

可以看到这个dataframe中包含3行两列,都是数值数据。

此时打印a.value_counts():

MultiIndexSeries

如图所示,这是一个有两列Index的Series:Index的name分别为‘东城站’和‘王府井’,index的值为a中对应列的元素值;这个MultiIndex Series的值为(1,1,1),即对应index的统计计数。

需要注意的是,第一列index的最后一个元素是2,但并没有打出来,是我手动画上去的。

所以对于东城站而言,index=4出现1次,index=2出现两次,是分开的两个1,即value中的最后两个1,我想不出来这种结构有什么用=.=


下面探讨一下如何读取这种数据

获取某一列中某一元素出现次数

因为MultiIndex Series也是Series,所以可以用loc和iloc获取其值。

例如,想要获取东城站这一列中2出现的次数,则可以:

DataFrame a 2在列东城站出现次数 8在列王府井出现次数

获取整个dataframe中4出现的次数:

4在所有列中出现次数

其中loc中的维数为a的列数。

我是因为需要统计整个DataFrame中某一元素出现的次数,本以为这个新特性可以很方便的满足我的需求,试了一通发现根本没啥用。

目前不太清楚这个DataFrame.value_counts的应用场景,以后了解了再进行完善,如果你有什么建议,欢迎留言哦!

相关文章

网友评论

      本文标题:DataFrame.value_counts, pandas1.

      本文链接:https://www.haomeiwen.com/subject/cbclsktx.html