pandas对角线值修改

Posted jaysonteng

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了pandas对角线值修改相关的知识,希望对你有一定的参考价值。

思路:

1、先将DataFrame数据转换为numpy

2、通过numpy来修改对角线值

3、再将数据转换为DataFrame

代码:

import pandas as pd
import numpy as np

# 数据
df = pd.DataFrame(np.arange(16).reshape((4, 4)), index=[a, b, c, d], columns=[i, j, k, f])
>>df:
     i    j    k    f
a    0    1    2    3
b    4    5    6    7
c    8    9    10    11
d    12   13   14    15


# 转换为numpy
dia_dt = df.values
>>dia_dt:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15]])

# 修改对角线数据
dia_i = list(range(len(df)))  # 获取numpy对角线索引
>>dia_i:
[0, 1, 2, 3]

dia_dt[dia_i, dia_i] = 0  # 通过索引修改值
>>dia_dt:
array([[ 0,  1,  2,  3],
       [ 4,  0,  6,  7],
       [ 8,  9,  0, 11],
       [12, 13, 14,  0]])

# 将数据转换回DataFrame
df = pd.DataFrame(dia_dt, index=df.index, columns=df.columns)
>>df:
     i    j    k    f
a    0    1    2    3
b    4    0    6    7
c    8    9    0    11
d    12   13   14   0

以上是关于pandas对角线值修改的主要内容,如果未能解决你的问题,请参考以下文章

pandas GroupBy上的方法apply:一般性的“拆分-应用-合并”

二值信息隐藏(分块和游程编码实现)

Pandas Dataframe:将对角线子帧减少为单行或如何逐个填充数据帧

我想知道像素/片段的原始模板值。零还是一?如果可能的话,得到啥具体的动作来修改模板值?

尝试修改LabelImg,将以对顶角画框改成以对角线相交点向四周画框

pandas设置值-老鱼学pandas