Например:
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