Метод Pandas для применения функции ко всему DataFrame - PullRequest
0 голосов
/ 24 июня 2018

Я создал функцию, в которой мне нужно передать кадр данных, получить форму и вернуть мне df.head ()

    def shape_of_df(df):
        tup = df.shape
        print('Shape of df  is Rows :{0[0]},column:{0[1]}'.format(tup))
        return df.head()

Теперь, когда я вызываю функцию с items.apply (shape_of_df), я получаю ошибку, однако, если я вызываю функцию и передаю df в качестве параметра, она работает нормально. Пожалуйста, дайте мне знать, что я упускаю что-то очень простое, когда я использую df.apply (), не могу понять в документах

   shape_of_df(items) # this works fine prints shape and df.head()

1 Ответ

0 голосов
/ 24 июня 2018

Первая строка документов объясняет, что DataFrame.apply будет «применять функцию вдоль оси кадра данных» (т.е. вдоль строк или вдоль столбцов).

Вместо этого вы хотите применить функцию ко всему фрейму данных, поэтому, если вы пытаетесь объединить функции в ряд, вам следует обратиться к DataFrame.pipe. Использование аналогично:

items.pipe(shape_of_df)

Пока вы удовлетворяете условию, что shape_of_df принимает DataFrame в качестве входных данных и соответственно возвращает один в качестве выходных.

...