简体   繁体   English

用熊猫对数据框中的列求和

[英]sum columns in dataframe with pandas

I have a dataframe df_F1 我有一个数据框df_F1

df_F1.info() 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() df_F1.head()

 class_energy ACT_TIME_AERATEUR_1_F1 ACT_TIME_AERATEUR_1_F3   
 low 5.875550 431 
 medium 856.666667 856

I try to create a dataframe Ratio wich contain for each class_energy the value of energy of each ACT_TIME_AERATEUR_1_Fx devided by the sum of energy of all class_energy for each ACT_TIME_AERATEUR_1_Fx. 我尝试创建一个数据帧比率,该比率包含每个class_energy的每个ACT_TIME_AERATEUR_1_Fx的能量值,该值除以每个ACT_TIME_AERATEUR_1_Fx的所有class_energy的能量之和。 For example : 例如 :

 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) 

Can you help me please to resolve it? 您能帮我解决吗?

Thank you in advancce 谢谢你的先进

Best regards 最好的祝福

you can do this: 你可以这样做:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM