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:将对角线子帧减少为单行或如何逐个填充数据帧
我想知道像素/片段的原始模板值。零还是一?如果可能的话,得到啥具体的动作来修改模板值?