用特定列的值划分数据帧中的所有列

  • 本文关键字:数据帧 划分 python dataframe
  • 更新时间 :
  • 英文 :


我有一个有10列的数据帧(其中最后一列是每行所有值的总和(,我需要将数据帧的每个值除以相应的总列。

Cluster 1 2 3 4 5 6 7 8 9  Total
Sector
1    3 2 1 3 1 2 1 1 2  16
2    2 2 2 3 1 2 1 1 2  16
3    1 1 1 3 1 2 1 1 2  13
4    4 1 1 3 1 2 1 1 2  16
5    3 2 3 3 1 2 1 1 2  18

我需要新的数据帧作为:

Cluster  1     2    3    4    5    6    7    8    9  Total
Sector
1    3/16 2/16 1/16 3/16 1/16 2/16 1/16 1/16 2/16  16
2    2/16 2/16 2/16 3/16 1/16 2/16 1/16 1/16 2/16  16
3    1/13 1/13 1/13 3/13 1/13 2/13 1/13 1/13 2/13  13
4    .....
5    ....

这里有一种方法可以实现

df.iloc[:,1:-1]=df.iloc[:,1:-1].div(df.iloc[:,-1], axis=0)
df
Cluster     1   2   3   4   5   6   7   8   9   Total
0   1   0.187500    0.125000    0.062500    0.187500    0.062500    0.125000    0.062500    0.062500    0.125000    16
1   2   0.125000    0.125000    0.125000    0.187500    0.062500    0.125000    0.062500    0.062500    0.125000    16
2   3   0.076923    0.076923    0.076923    0.230769    0.076923    0.153846    0.076923    0.076923    0.153846    13
3   4   0.250000    0.062500    0.062500    0.187500    0.062500    0.125000    0.062500    0.062500    0.125000    16
4   5   0.166667    0.111111    0.166667    0.166667    0.055556    0.111111    0.055556    0.055556    0.111111    18

最新更新