Python 如何使用lambda在计算函数中输入不断变化的列数,并在panda'中应用;什么是数据帧?
我每个月都有一个新的datasat,其中有许多可以更改的列 我想在dataframe中创建一个新列,其函数如下: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
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),但它是错误的