首页 > 解决方案 > Pandas 使用索引名称和列名称应用函数

问题描述

考虑数据框:

data = pd.DataFrame(0, index=[1,2,3,4], columns=[1,2,3,4])
data    
    1   2   3   4
1   0   0   0   0
2   0   0   0   0
3   0   0   0   0
4   0   0   0   0

我想使用一个带有两个参数的函数来填充这些值。这两个参数将是数据框的索引名称和列名称。我怎样才能实现这一点(使用矢量化)?

def multiply(a, b):
    return a * b

我一直在尝试各种组合data.apply(lambda x: x.apply(multiply, args=(x.name)))但无法使其工作。

非常感谢任何帮助。

标签: pythonpandasvectorization

解决方案


您可以使您的代码工作,使用:

def multiply(a, b):
    return a * b

df = df.apply(lambda x: multiply(x.index, x.name))

推荐阅读