使用 pandas 计算数据框中的列总和

问题描述 投票:0回答:1

我有一个数据框 df_F1

df_F1.info()

   <class 'pandas.core.frame.DataFrame'>
    Int64Index: 2 entries, 0 to 1
    Data columns (total 7 columns):
    class_energy              2 non-null object
    ACT_TIME_AERATEUR_1_F1    2 non-null float64
    ACT_TIME_AERATEUR_1_F3    2 non-null float64
    dtypes: float64(6), object(1)
    memory usage: 128.0+ bytes

df_F1.head()

 class_energy ACT_TIME_AERATEUR_1_F1 ACT_TIME_AERATEUR_1_F3   
 low 5.875550 431 
 medium 856.666667 856

我尝试创建一个数据帧比率,其中包含每个 class_energy 的每个 ACT_TIME_AERATEUR_1_Fx 的能量值除以每个 ACT_TIME_AERATEUR_1_Fx 的所有 class_energy 的能量总和。例如:

ACT_TIME_AERATEUR_1_F1 ACT_TIME_AERATEUR_1_F3 
low        5.875550/(5.875550 + 856.666667) 431/(431+856) 
medium 856.666667/(5.875550+856.666667) 856/(431+856)

你能帮我解决这个问题吗?

python pandas dataframe sum
1个回答
1
投票

你可以这样做:

In [20]: df.set_index('class_energy').apply(lambda x: x/x.sum()).reset_index()
Out[20]:
  class_energy  ACT_TIME_AERATEUR_1_F1  ACT_TIME_AERATEUR_1_F3
0          low                0.006812                0.334887
1       medium                0.993188                0.665113
© www.soinside.com 2019 - 2024. All rights reserved.