Сводная таблица панд странные результаты - PullRequest
0 голосов
/ 10 января 2019

У меня возникли проблемы с группировкой по сводной таблице панд. У меня есть набор данных, и я беру два его подмножества. Вот как я создаю подмножества и как они выглядят

df3= df2.head(170).tail()
df3
    cuts    delta_2 tag
165 (360, 2000] 426.0   0.0
166 (360, 2000] 426.0   0.0
167 (360, 2000] 426.0   0.0
168 (360, 2000] 426.0   0.0
169 NaN NaN 0.0

df4= (df2.head(171)).tail()
df4    
    cuts    delta_2 tag
166 (360, 2000] 426.0   0.0
167 (360, 2000] 426.0   0.0
168 (360, 2000] 426.0   0.0
169 NaN NaN 0.0
170 (180, 360]  183.0   0.0

Теперь я просто пытаюсь сгруппировать их, используя сводные таблицы, и получаю странные результаты:

df3.pivot_table(values = 'tag', index= 'cuts', aggfunc=['sum', 'count'],dropna=True).sort_values('cuts')
    sum count
    tag tag
cuts        
NaN 0.0 0
(360, 2000] 0.0 4

Вышеуказанное ничего не значило для категории NaN. Однако проблема становится намного больше в следующем

df4.pivot_table(values = 'tag', index= 'cuts', aggfunc=['sum', 'count'],dropna=True).sort_values('cuts')
    sum count
    tag tag
cuts        
NaN 0.0 3
(180, 360]  0.0 0
(360, 2000] 0.0 1

Здесь счет становится действительно странным. Я не могу понять, почему. Переменная Cuts была создана с использованием функции pd.cut для переменной delta_2. Моя цель - получить mean, но поскольку mean показывал странные результаты, я попытался вычислить sum и count.

1 Ответ

0 голосов
/ 10 января 2019
df3.pivot_table(values = 'tag', index= 'cuts', aggfunc=[np.sum, 
np.mean],dropna=True).sort_values('cuts')

используйте сумму numy и среднее значение для вычисления суммы и среднего.

...