Как я могу динамически передавать аргументы в лямбда-функцию DataFrame.apply ()? - PullRequest
0 голосов
/ 16 мая 2018

Я пытаюсь запустить метод Pandas apply() для Dataframe, чтобы создать новый столбец, следующим образом:

df['new_column'] = df.groupby(groupby).apply(lambda x: some_function(x, df['existing_column']))

Итак, я пытаюсь передать второй аргументsome_function динамически относительно того, что df['existing_column'] хранит в качестве значения для каждой строки (значения различаются).

Ошибка, которую я получаю, является общей TypeError: 'Series' objects are mutable, thus they cannot be hashed.Есть ли правильный способ для этого?Я пытался выполнить цикл for для каждой строки, но это убивает мой процессор.

1 Ответ

0 голосов
/ 16 мая 2018

Я предлагаю использовать transform, если нужен новый столбец на existing_column для групп:

df['new_column'] = df.groupby('col')['existing_column'].transform(lambda x: funct(x, par))
...