首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >熊猫-如何切value_counts?

熊猫-如何切value_counts?
EN

Stack Overflow用户
提问于 2016-05-30 09:35:43
回答 1查看 3.5K关注 0票数 1

我想切一只熊猫value_counts():

代码语言:javascript
复制
>sur_perimetre[col].value_counts()
44341006.0    610
14231009.0    441
12131001.0    382
12222009.0    364
12142001.0    354

但我发现了一个错误:

代码语言:javascript
复制
> sur_perimetre[col].value_counts()[:5]
KeyError: 5.0

ix也是如此:

代码语言:javascript
复制
> sur_perimetre[col].value_counts().ix[:5]
KeyError: 5.0

你会怎么处理呢?

编辑

也许:

代码语言:javascript
复制
pd.DataFrame(sur_perimetre[col].value_counts()).reset_index()[:5]
EN

回答 1

Stack Overflow用户

发布于 2016-05-30 10:03:22

方法1:

您需要观察value_counts()返回一个Series对象。您可以像任何其他系列一样处理它并获得值。你甚至可以用它来构造一个新的数据。

代码语言:javascript
复制
In [1]: import pandas as pd

In [2]: df = pd.DataFrame([1,2,3,3,4,5], columns=['C1'])

In [3]: vc = df.C1.value_counts()

In [4]: type(vc)
Out[4]: pandas.core.series.Series

In [5]: vc.values
Out[5]: array([2, 1, 1, 1, 1])

In [6]: vc.values[:2]
Out[6]: array([2, 1])

In [7]: vc.index.values
Out[7]: array([3, 5, 4, 2, 1])

In [8]: df2 = pd.DataFrame({'value':vc.index, 'count':vc.values})

In [8]: df2
Out[8]: 
   count  value
0      2      3
1      1      5
2      1      4
3      1      2
4      1      1

Method2:

然后,我试图重新生成你提到的错误。但是,使用DF中的一个列,我没有得到任何错误,与您提到的符号相同。

代码语言:javascript
复制
In [1]: import pandas as pd

In [2]: df = pd.DataFrame([1,2,3,3,4,5], columns=['C1'])

In [3]: df['C1'].value_counts()[:3]
Out[3]: 
3    2
5    1
4    1
Name: C1, dtype: int64      

In [4]: df.C1.value_counts()[:5]
Out[4]: 
3    2
5    1
4    1
2    1
1    1
Name: C1, dtype: int64

In [5]: pd.__version__
Out[5]: u'0.17.1'

希望能帮上忙!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37522323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档