Pandas 系列 value_counts 对不同计数的工作方式不同

例如:


df1 = pd.DataFrame(np.repeat(np.arange(1,7),3), columns=['A'])


df1.A.value_counts(sort=False)

1    3

2    3

3    3

4    3

5    3

6    3

Name: A, dtype: int64

df2 = pd.DataFrame(np.repeat(np.arange(1,7),100), columns=['A'])


df2.A.value_counts(sort=False)

1    100

2    100

3    100

4    100

5    100

6    100

Name: A, dtype: int64

在上面的例子中,value_counts工作完美并给出了所需的结果。而在处理更大的数据帧时,它会给出不同的输出。这里的A值已经排序并且计数也相同,但是索引的顺序A在value_counts. 为什么它对小计数正确但对大计数不正确:


df3 = pd.DataFrame(np.repeat(np.arange(1,7),1000), columns=['A'])


df3.A.value_counts(sort=False)

4    1000

1    1000

5    1000

2    1000

6    1000

3    1000

Name: A, dtype: int64

在这里我可以做df3.A.value_counts(sort=False).sort_index()或df3.A.value_counts(sort=False).reindex(df.A.unique())。我想知道为什么它对不同的计数表现不同?


使用:


Numpy version :1.15.2

Pandas version :0.23.4


大话西游666
浏览 197回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python