Панды применяются: прототип функции для автоматической распаковки колонки - PullRequest
0 голосов
/ 19 сентября 2019

Есть ли способ, с помощью которого я могу заставить функцию автоматически распаковывать столбцы с помощью метода df.apply?

В идеале я ищу способ определить функцию, чтобы она автоматически распаковывалась независимо отколичество столбцов во фрейме данных и позволяет мне использовать имена столбцов в качестве переменных напрямую Что-то вроде

def func(*row):
    print col1
or def func(**row)
    print col1

вместе с df.apply(func, axis=1)

То, что я пробовал до сих пор и не сделалкак

def func(row):
       col1, col2, col3 = row

df[col1, col2, col3].apply(func, axis=1)

Пример по запросу:

import pandas as pd
import numpy as np

grid = np.random.rand(5,2)
df = pd.DataFrame(grid, columns =['col1', 'col2'])

Учитывая это: я пытаюсь написать такую ​​функцию, что

def multiply(x): 
###This function definition does not obviously work. What im asking is a way to achieve similar functionality without me explicitly unpacking x to col1 and col2###
    print col1
    print col2


df.apply(multiply, axis=1)

1 Ответ

0 голосов
/ 19 сентября 2019

Если вы используете apply с функцией и axis=1, то столбцы уже доступны по их именам.

def print_columns(row):

    print('Column 1:', row['col1'])
    print('Column 2:', row['col2'])

df.apply(print_columns, axis=1) 

Из переменной row в функции вы можете получить доступ к любым столбцам с помощьюимя.Очевидно, что вы должны return что-то установить в столбце вывода.

...