我有一个有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