В чем разница между groupby("x").count
и groupby("x").size
в пандах?В чем разница между размером и количеством в пандах?
Имеет ли размер только исключить ноль?
В чем разница между groupby("x").count
и groupby("x").size
в пандах?В чем разница между размером и количеством в пандах?
Имеет ли размер только исключить ноль?
size
включает NaN
значения, count
не:
In [46]:
df = pd.DataFrame({'a':[0,0,1,2,2,2], 'b':[1,2,3,4,np.NaN,4], 'c':np.random.randn(6)})
df
Out[46]:
a b c
0 0 1 1.067627
1 0 2 0.554691
2 1 3 0.458084
3 2 4 0.426635
4 2 NaN -2.238091
5 2 4 1.256943
In [48]:
print(df.groupby(['a'])['b'].count())
print(df.groupby(['a'])['b'].size())
a
0 2
1 1
2 2
Name: b, dtype: int64
a
0 2
1 1
2 3
dtype: int64
Просто, чтобы добавить немного к @ Edchum отвечает, даже если данные не имеют значения NA, результат подсчета() более многословен, используя пример перед:
grouped = df.groupby('a')
grouped.count()
Out[197]:
b c
a
0 2 2
1 1 1
2 2 3
grouped.size()
Out[198]:
a
0 2
1 1
2 3
dtype: int64
Кажется,« размер »- элегантный эквивалент' count' в пандах. –
Когда мы имеем дело с нормальными кадрами данных, то единственное различие будет включение значений NaN, означает количество не включает в себя значения NaN при подсчете строк.
Но если мы будем использовать эти функции с группой к тому времени, чтобы получить правильные результаты по count(), нам нужно связать любое числовое поле с группой, чтобы получить точное число групп, где для size() есть не требуется для такого типа ассоциации.
Документация говорит, что размер «возвращает количество элементов в NDFrame» и подсчитывает «возвратную серию с числом не-NA/нулевых наблюдений по запрашиваемой оси». Также работает с данными без плавающей запятой (обнаруживает NaN и None) « – Hamsternik