四时宝库

程序员的知识宝库

使用DataFrame计算两列的总和和最大值_[python]

【如果对您有用,请关注并转发,谢谢~~】

最近在处理气象类相关数据的空间计算,在做综合性计算的时候,DataFrame针对每列的统计求和、最大值等较为方便,对某行的两列或多列数据进行求和与最大值等的简便方法(方案二),方案一是使用传统循环方法计算。

采用以下测试数据,用前3列求红色区域两列数据。


方案一

使用传统每行的进行循环计算求和与最大值


import pandas as pd

# 设置测试样例数据
df = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],"Units": [100, 150, 110, 80, 110, 90],"prices": [120, 110, 100, 90, 150, 90] }
)

# 创建求和与最大值列
df['Total'] = None
df['Max'] = None
df

# 给每列设置index
index_selling=df.columns.get_loc('Units')
index_cost=df.columns.get_loc('prices')
index_total=df.columns.get_loc('Total')
index_max=df.columns.get_loc('Max')

# 循环每行进行求和
for row in range(0, len(df)):
    df.iat[row, index_total] = df.iat[row,index_selling] + df.iat[row, index_cost]
    if df.iat[row, index_selling] > df.iat[row, index_cost]:
        df.iat[row, index_max] = df.iat[row, index_selling]
    else:
        df.iat[row, index_max] = df.iat[row, index_cost]
df



方案二

采用Dataframe的对2列或多列需要先转置再计算,然后进行求和与最大值。df.max()默认对每一列取最大值。

import pandas as pd

# 设置测试样例数据
df = pd.DataFrame(
   {
      "Car": ['BMW', 'Lexus', 'Audi', 'Tesla', 'Bentley', 'Jaguar'],"Units": [100, 150, 110, 80, 110, 90],"prices": [120, 110, 100, 90, 150, 90] }
)

# 核心关键,计算多列数据求和与最大值
df["Total"]=df.loc[:,["Units","prices"]].T.sum()
df["Max"]=df.loc[:,["Units","prices"]].T.max()
df


发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接