Как Панды разрешают функцию, указанную по имени в df.agg - PullRequest
0 голосов
/ 22 ноября 2018

Я изучаю Панд и Нампи, в настоящее время изучаю этот раздел учебного пособия.Я вообще новичок в Python, так что это, вероятно, основной вопрос новичка.

Учитывая этот фрейм данных:

df = pd.DataFrame(np.random.randn(4, 3), columns=['A', 'B', 'C'],
                      index=pd.date_range('1/1/2000', periods=4))
df.iloc[3:7] = np.nan

Я не могу объяснить разницу между следующими результатами df.agg:

Вызов 1:

df.agg(sum)

#Result:
A   NaN
B   NaN
C   NaN
dtype: float64

Вызов 2:

df.agg('sum')

#Result:
A   -1.776752
B   -2.070156
C   -0.124162
dtype: float64

Результат df.agg('sum') такой же, какdf.agg(np.sum) или df.sum().Я ожидал, что df.agg('sum') даст тот же результат, что и df.agg(sum).

Есть ли у Pandas особая логика для разрешения этих функций, так что она предпочла бы np.sum (или запустить df.sum) вместо встроенногов sum?

1 Ответ

0 голосов
/ 22 ноября 2018

В документации, на которую вы ссылаетесь, написано:

Вы также можете передавать именованные методы в виде строк.

Таким образом, строки разрешаются как имена методов в DataFrame(или Серии, если вы звоните agg на Серии).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...