如果我有以下 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
关于python - 遍历 pandas 中列名和行索引的成对组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45417391/