Использование result_type с функцией применения панд - PullRequest
0 голосов
/ 17 октября 2018

Я хочу использовать применить к pandas.DataFrame , который я создал, и вернуть для каждой строки список значений, где каждое значение представляет собой сам столбец.

Я написал следующий код:

import pandas as pd

def get_list(row):
  return [i for i in range(5)]

df = pd.DataFrame(0, index=np.arange(100), columns=['col'])


df.apply(lambda row: get_list(row), axis=1, result_type='expand')

Когда я добавляю result_type='expand', чтобы изменить возвращенный массив на отдельные столбцы, я получаю следующую ошибку:

TypeError: ("<lambda>() got an unexpected keyword argument 'result_type'", 'occurred at index 0')

Однако если я уроню поле result_type, оно будет работать нормально (возвращает столбец массивов), в чем может быть проблема?

  • Я использую colab для запуска моего кода

1 Ответ

0 голосов
/ 17 октября 2018

Этот код работает в pandas версии 0.23.3, правильно вам просто нужно запустить pip install --upgrade pandas в вашем терминале.

или

Вы можете выполнить это безresult_type следующим образом:

def get_list(row):
    return pd.Series([i for i in range(5)])

df = pd.DataFrame(0, index=np.arange(100), columns=['col'])
pd.concat([df, df.apply(get_list, axis=1)], axis=1)

    col 0   1   2   3   4
0   0   0   1   2   3   4
1   0   0   1   2   3   4
2   0   0   1   2   3   4
3   0   0   1   2   3   4
4   0   0   1   2   3   4
...

Кстати, вам не нужно lambda для этого, вы можете просто:

df.apply(get_list, axis=1, result_type='expand')

Обновить Тип result_type был объявлен в примечаниях к выпуску pandas 0.23: https://pandas.pydata.org/pandas-docs/stable/whatsnew.html#whatsnew-0230, поэтому, боюсь, вам придется обновить.

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