如何在数据帧上加、减、除、乘列?

2024-09-27 17:50:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望你能帮助我。 我需要得到这个结果: 对于每行中的项,创建Max(in/Out Util)-1Mbr列,结果为:

df['Max(In/Out Util)-1Mbr'] = [df['Max(In/Out Util)']/100*df['Egress Speed']] / [df['Egress Speed']-(df['Egress Speed']/df['Oper. Member Count'])]*100

原始数据帧

Site Name           Oper. Member Count  Egress Speed    Max(In/Out Util)
KB201_XXX71_SR7                     2       6000000             11,1527 
KB201_XXX71_SR7                     2           N/A                 N/A 
KN092_XXX71_SR7                     4       4000000             9,60783

最终数据框

Site Name           Oper. Member Count  Egress Speed    Max(In/Out Util)    Max(In/Out Util)-1Mbr
KB201_XXX71_SR7                     2       6000000             11,1527                     22,3
KB201_XXX71_SR7                     2           N/A                 N/A                     N/A
KN092_XXX71_SR7                     4       4000000             9,60783                     12,8

Tags: nameindfcountutilsiteoutmax
2条回答

您只需设置数学公式,用列的名称来表示结果:

   df['col4'] = (df['col1']+df['col2'])/df['col3']

编辑:新请求的公式:

df['Max(In/Out Util)-1Mbr'] = [df['Max(In/Out Util)']/100*df['Egress Speed']] / [df['Egress Speed']-(df['Egress Speed']/df['Oper. Member Count'])]*100 

EDIT2:基于你的数字是用拉丁符号编码的(这是用逗号来表示小数点),你应该先用:

df = df.apply(lambda x: x.str.replace(',','.'))
df['Max(In/Out Util)-1Mbr'] = df['Max(In/Out Util)-1Mbr'].astype(int)
df['Egress Speed'] = df['Egress Speed'].astype(int)
df['Oper. Member Count'] = df['Oper. Member Count'].astype(int)

然后你建议的公式是:

df['Max(In/Out Util)-1Mbr'] = (df['Max(In/Out Util)']*df['Egress Speed']) / (df['Egress Speed'] - df['Egress Speed'] / df['Oper. Member Count'])

只要用最后的公式就行了。你知道吗

只是:

df['col4']= (df['col1']+df['col2'])/df['col3']

相关问题 更多 >

    热门问题