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

标签 python pandas

如果我有以下 pandas DataFrame :

>>> df

  x y z

x 1 3 0

y 0 5 0

z 0 3 4

我想遍历列名和行索引的成对组合来执行某些操作。例如,对于 xy 对,将 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/

相关文章:

python - Keras 中一维 CNN 的激活函数错误

python - 将困惑的 str 替换为来自另一个数据帧的干净的 str

python - 创建一个 DataFrame,它由来自另一个的所有行对组成

python - 获取具有以模式开头的字符串的单元格的所有行和列位置

python - 将 KERAS 张量转换为 K.tf.int32

python - 命名 Tensorflow 中表达式的输出

python - 从每行/etc/hosts 获取主机名值

python - 如何使用 selenium 2 检查网页上是否存在某些文本?

python - 有效地检查 Python/numpy/pandas 中的任意对象是否为 NaN?

python - Pandas 将列分成多个