Python 如何使用lambda在计算函数中输入不断变化的列数,并在panda'中应用;什么是数据帧?

Python 如何使用lambda在计算函数中输入不断变化的列数,并在panda'中应用;什么是数据帧?,python,python-3.x,pandas,dataframe,apply,Python,Python 3.x,Pandas,Dataframe,Apply,我每个月都有一个新的datasat,其中有许多可以更改的列 我想在dataframe中创建一个新列,其函数如下: def calcul(**kwargs): [...] return result 我会这样创建我的专栏: df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['B1']), axis = 1) 但我也可以有这个案子: df['result'] = df.apply(lambda x: c

我每个月都有一个新的datasat,其中有许多可以更改的列

我想在dataframe中创建一个新列,其函数如下:

def calcul(**kwargs):

    [...]

    return result
我会这样创建我的专栏:

df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['B1']), axis =  1)
但我也可以有这个案子:

df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['A3'], x['B1', x['B2']), axis =  1)
我尝试根据数据创建一个参数列表,并使用sys.stdout.write()输入该列表,但它不起作用

liste = ["x[\'A1\']", "x[\'A2\']", "x[\'B1\']"]

df['result'] = df.apply(lambda x: calcul(sys.stdout.write(", ".join(liste))), axis =  1)
IIUC您可以替换:

df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['B1']), axis =  1)
与:

其中cols是更改的列列表

*
解压列表,因此它相当于原始行。

IIUC您可以替换:

df['result'] = df.apply(lambda x: calcul(x['A1'], x['A2'], x['B1']), axis =  1)
与:

其中cols是更改的列列表


*
解压列表,因此它相当于您的原始行。

我想您的意思是
*args
:它不起作用,因为
df.apply()
不希望您向STDOUT写入您使用的是哪种数据?该函数的作用是什么?更多的上下文会更好。函数很复杂,它的目标是计算会计准备金,这就是我没有进入细节的原因。列的可变数量取决于预处理中另一列的轴。我想您的意思是
*args
:它不起作用,因为
df.apply()
不希望您向STDOUT写入什么样的数据?该函数的作用是什么?更多的上下文会更好。函数很复杂,它的目标是计算会计准备金,这就是我没有进入细节的原因。列的可变数量取决于预处理中另一列的轴心,它可以工作!我曾经尝试过df['result']=df.apply(lambda x:calcul(x[c]表示cols中的c),axis=1),但它是错误的谢谢,它可以工作!我尝试了df['result']=df.apply(lambda x:calcul(x[c]表示cols中的c),axis=1),但它是错误的