Skip to main content
 首页 » 编程设计

python之遍历 pandas 中列名和行索引的成对组合

2025年05月04日14lhb25

如果我有以下 pandas DataFrame :

>>> df 
 
  x y z 
 
x 1 3 0 
 
y 0 5 0 
 
z 0 3 4 

我想遍历列名和行索引的成对组合来执行某些操作。例如,对于 x 和 y 对,将 3 替换为“xy”。所需的输出将如下所示:

>>> df 
 
   x  y z 
 
x xx xy xz 
 
y xy yy yz 
 
z xz yz zz 

我试过但不起作用的一个天真的代码是:

for i, j in range(0,2): 
    df.loc[df.index[i], df.columns[j]] = df.index[i] + df.columns[j] 

请您参考如下方法:

使用 Pandas DataFrame 元素的简单单行代码如何:

df.apply(lambda x: x.index+x.name) 

输出:

    x   y   z 
x  xx  xy  xz 
y  yx  yy  yz 
z  zx  zy  zz 

更新:使用 numpy.ufunc.outer 方法。

pd.DataFrame(np.add.outer(df.index, df.columns), index=df.index, columns=df.columns) 

输出:

    x   y   z 
x  xx  xy  xz 
y  yx  yy  yz 
z  zx  zy  zz