Pandas: как применить функцию, которая принимает массив к столбцу? - PullRequest
0 голосов
/ 02 августа 2020

Итак, у меня есть функция, которая выполняет итерацию по массиву элементов столбца. Я не могу заставить его работать для каждого элемента, потому что он должен перебирать все элементы линейно, имея некоторый контекст with. Итак, как сделать что-то вроде этого:

df['newColumn'] = fun(df['oldColumn'])

Как это сделать в pandas?

Ответы [ 2 ]

1 голос
/ 02 августа 2020

Если вывод похож на массив с той же длиной, что и df, вы можете попробовать:

df['newColumn'] = pd.Series(fun(df['oldColumn']), index = df.index)
1 голос
/ 02 августа 2020

У вас есть два варианта. Либо создайте новую функцию fun2(), имеющую ту же функциональность, что и fun(), но только для одного элемента, и выполните

df['newColumn'] = df['oldColumn'].apply(lambda x: fun2(x))

, который будет применять fun2() к каждому элементу в столбец, или приведите df['oldColumn'] к списку, позвонив df['oldColumn'].tolist()

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