我想切一只熊猫value_counts():
>sur_perimetre[col].value_counts()
44341006.0 610
14231009.0 441
12131001.0 382
12222009.0 364
12142001.0 354但我发现了一个错误:
> sur_perimetre[col].value_counts()[:5]
KeyError: 5.0ix也是如此:
> sur_perimetre[col].value_counts().ix[:5]
KeyError: 5.0你会怎么处理呢?
编辑
也许:
pd.DataFrame(sur_perimetre[col].value_counts()).reset_index()[:5]发布于 2016-05-30 10:03:22
方法1:
您需要观察value_counts()返回一个Series对象。您可以像任何其他系列一样处理它并获得值。你甚至可以用它来构造一个新的数据。
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 1Method2:
然后,我试图重新生成你提到的错误。但是,使用DF中的一个列,我没有得到任何错误,与您提到的符号相同。
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'希望能帮上忙!
https://stackoverflow.com/questions/37522323
复制相似问题