поля в сводной таблице подсчитывают, когда значения Nan в значениях - PullRequest
0 голосов
/ 30 сентября 2019

Я пытаюсь понять #len aggfunc, когда в списке значений есть Nan. Я думаю, что вертикальное поле столбца 'total' с table2 должно быть 9. Но это 7. Почему это?

Я попробовал "count" вместо len. Этот результат является ожидаемым.

df = pd.DataFrame({"A": ["foo", "foo", "foo", "foo", "foo",
                     "bar", "bar", "bar", "bar"]
               "B": ["one", "one", "one", "two", "two",
                     "one", "one", "two", "two"],
               "C": ["small", np.nan, "large", "small",
                     "small", "large", np.nan, "small", "large"],
               "D": [1, 2, 2, 3, 3, 4, 5, 6, 7],
               "E": [2, 4, 5, 5, 6, 6, 8, 9, 9]})

table1 = df.pivot_table(index = "A", columns = "B", values = "C", 
                        aggfunc = "count", margins = True)
table1["total"] = table1["one"] + table1["two"]
table1

table2 = df.pivot_table(index = "A", columns = "B", values = "C", 
                        aggfunc = len, margins = True)
table2["total"] = table2["one"] + table2["two"]
table2

введите описание изображения здесь

введите описание изображения здесь

...