我有一个大的数据框,其中包含数个项目的有效数字,并且想要将它们转换成相对频率。因此,我添加了一列来为每行中的所有列值求和:
product apple pear banana sum
Jean 3 5 1 9
Phil 2 7 1 10
Yanis 5 4 4 14
接下来,我需要应用公式x/sum(X)*100,以获得数据框中每个值的相对频率,以便获得以下类似的数据框:
product apple pear banana
Jean 33.33 55.55 11.11
Phil 20 70 10
Yanis 37.71 28.57 28.57
我不太清楚如何在不指定每个列的情况下完成此操作(这只是一个小例子的数据集)
我的代码:
df = pd.read_csv(f, sep="\t", index_col='product')
dff = df.transpose()
dff["sum"] = dff.sum(axis=1)
谢谢您提前的支持。