Как исправить: TypeError: объект «DataFrame» не может быть вызван


Одна распространенная ошибка, с которой вы можете столкнуться при использовании pandas:

TypeError : 'DataFrame' object is not callable

Эта ошибка обычно возникает, когда вы пытаетесь выполнить какое-либо вычисление переменной в кадре данных pandas, используя круглые () скобки вместо квадратных скобок [ ] .

В следующем примере показано, как использовать этот синтаксис на практике.

Как воспроизвести ошибку

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
 'points': [18, 22, 19, 14, 14, 11, 20, 28],
 'assists': [5, 7, 7, 9, 12, 9, 9, 4],
 'rebounds': [11, 8, 10, 6, 6, 5, 9, 12]})

#view DataFrame
print(df)

 team points assists rebounds
0 A 18 5 11
1 B 22 7 8
2 C 19 7 10
3 D 14 9 6
4 E 14 12 6
5 F 11 9 5
6 G 20 9 9
7 H 28 4 12

Теперь предположим, что мы пытаемся вычислить среднее значение в столбце «баллы»:

#attempt to calculate mean value in points column
df('points').mean()

TypeError : 'DataFrame' object is not callable

Поскольку мы использовали круглые () скобки, pandas считает, что мы пытаемся вызвать DataFrame как функцию.

Поскольку DataFrame не является функцией, мы получаем ошибку.

Как исправить ошибку

Чтобы устранить эту ошибку, просто используйте квадратные [] скобки при доступе к столбцу точек вместо круглых () скобок:

#calculate mean value in points column
df['points'].mean()

18.25

Мы можем вычислить среднее значение столбца точек (18,25) без каких-либо ошибок, поскольку мы использовали квадратные скобки.

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

#calculate mean value in points column
df.points.mean ()

18.25

Обратите внимание, что и на этот раз мы не получили никакой ошибки.

Дополнительные ресурсы

В следующих руководствах объясняется, как исправить другие распространенные ошибки в Python:

Как исправить в Python: объект 'numpy.ndarray' не вызывается
Как исправить: TypeError: объект 'numpy.float64' не вызывается
Как исправить: ошибка типа: ожидаемая строка или байтовый объект

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.