Да, они должны давать одинаковые результаты. На самом деле они даже в более старых версиях Pandas
:
In [22]: pd.__version__
Out[22]: '0.20.3'
In [23]: df = pd.DataFrame({'A': 10000*[1], 'B': np.random.randint(0, 1001, 10000)})
In [24]: df['level'] = pd.cut(df.B, bins = [0, 200, 400, 600, 800, 1000],
labels = ['i', 'ii', 'iii', 'iv', 'v'])
In [25]: df.level.value_counts(sort = False)
Out[25]:
i 1968
ii 1936
iii 1992
iv 2073
v 2022
Name: level, dtype: int64
In [26]: df.pivot_table(index = 'A', columns = 'level', values = 'B', aggfunc = 'count').loc[1]
Out[26]:
level
i 1968
ii 1936
iii 1992
iv 2073
v 2022
Name: 1, dtype: int64
Использование df.groupby()
также работает:
In [27]: df.groupby('level').size()
Out[27]:
level
i 1968
ii 1936
iii 1992
iv 2073
v 2022
dtype: int64
Таким образом, версия, которую вы используете, вероятно, имеет некоторую ошибку.
Используйте вместо этого bons.M
.
cat := bson.M{"Animal": "Cat"}
dog := bson.M{"Animal": "Dog"}
response := bson.A{}
response = append(response, cat)
response = append(response, dog)
writer.Header().Set("Content-Type", "application/json")
json, _ := json.Marshal(response)
writer.Write(json)