我正在尝试使用apply args参数将函数应用于数据框的行。我看到了多个 相似的 问题,但是按照解决方案并不能起作用。我创建了一个示例。
在这里,我将我的数据框除以其列的总和。
我知道如何使用 lambda 来返回相同的结果。
然而,当我尝试使用apply参数时,它无法正常工作。
在这里,我将我的数据框除以其列的总和。
pij=pd.DataFrame(np.random.randn(500,2))
pij.divide(pij.sum(1),axis=0).head()
0 1
0 1.077353 -0.690463
1 0.608302 0.583209
2 -0.724272 -1.665318
3 -0.735404 -0.606744
4 -0.033409 -0.162695
我知道如何使用 lambda 来返回相同的结果。
def lambda_divide(row):
return row / row.sum(0)
pij.apply(lambda row: lambda_divide(row), axis=1).head()
0 1
0 1.077353 -0.690463
1 0.608302 0.583209
2 -0.724272 -1.665318
3 -0.735404 -0.606744
4 -0.033409 -0.162695
然而,当我尝试使用apply参数时,它无法正常工作。
pij.apply(np.divide,args=(pij.sum(1)))