Кортежа понимания списка панд из dataframe - PullRequest
0 голосов
/ 02 октября 2018

Это просто придирчивый синтаксический вопрос ...

У меня есть фрейм данных, и я хочу использовать списочный анализ для оценки функции с использованием большого количества столбцов.

Я знаю, что могусделать это

df['result_col'] = [some_func(*var) for var in zip(df['col_1'], df['col_2'],... ,df['col_n'])]

Я хотел бы сделать что-то вроде этого

df['result_col'] = [some_func(*var) for var in zip(df[['col_1', 'col_2',... ,'col_n']])]

, то есть не нужно писать df n раз.Я не могу на всю жизнь понять синтаксис.

Ответы [ 2 ]

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

Как указано в комментариях выше, вы должны использовать apply вместо:

df['reult_col'] = df.apply(lambda x: some_func(*tuple(x.values)), axis=1)
0 голосов
/ 02 октября 2018

это должно сработать, но, честно говоря, ОП это тоже понял, так что +1 ОП :) 100 *

df['result_col'] = [some_func(*var) for var in zip(*[df[col] for col in ['col_1', 'col_2',... ,'col_n']])]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...