Python 熊猫应用:自动列解包功能原型
有没有一种方法可以让函数使用df.apply方法自动解包列 理想情况下,我正在寻找一种方法来定义函数,使其自动解包,而不考虑数据框中的列数,并允许我直接使用列名作为变量 差不多Python 熊猫应用:自动列解包功能原型,python,pandas,apply,Python,Pandas,Apply,有没有一种方法可以让函数使用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[col
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]。应用(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)
从函数中的
行
变量中,可以按名称访问任何列。显然,请确保返回要在输出列中设置的内容。请添加输入数据和预期输出的示例。现在很难看出你想要达到什么目标。我用一个例子编辑了这些知识。使用这个例子,你是否尝试使用x['col1']
。apply函数期望获得一个系列,如果轴=1,则它是一行,列是该系列的索引