【发布时间】:2016-09-17 05:29:26
【问题描述】:
我正在尝试使用 apply args 参数将函数应用于数据帧的行。我看到multiplesimilarquestions,但遵循解决方案似乎不起作用。我创建了一个示例。
在这里,我将我的数据框除以其列的总和
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)))
【问题讨论】:
标签: python pandas lambda dataframe apply