熊猫应用:自动开箱的功能原型



有没有办法让我使用 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)

如果您将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要在输出列中设置的内容。

最新更新