例如:
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
相关分类