pandas 如何根据条件从行中取最大值、最小值、平均值

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

我面临以下问题: 我可以进行条件列计算, 但, 我不能按条件对每一行使用函数 min、max、mean

import pandas as pd
data = {'Name': ['Tom', 'nick', 'krish', 'jack','bob'],
        'level_1': [2, -3, 7, -4,-2],
        'level_2': [6, 5, -3, -9,2],
        'level_3': [-2, -1, 4, 6,-4],
        }

df = pd.DataFrame(data)

print(df)


def f(row):
    if (row['level_1'] < 0) & (row['level_2'] < 0):
        
        val = row['level_1'] + row['level_2']
    elif (row['level_1'] > 0) & (row['level_2'] > 0):

        val = row['level_1'] - row['level_2']

    else:
        val = row[['level_1','level_2','level_3']].max#(axis=1)

    return val

df['level_final'] = df.apply(f, axis=1)

print(40*'#')

print(df)

有人可以帮我吗?

pandas if-statement max
1个回答
0
投票

您在 else 语句中缺少 .max 中的括号

© www.soinside.com 2019 - 2024. All rights reserved.