Skip to main content
 首页 » 编程设计

python之根据另一列的多个条件修改一列值

2025年05月04日21lidabo

<分区>

如果我有以下数据框。我想根据A列的多个条件返回B列的任意值,规则如下:如果A列中的值> = 0且<50,则返回B列的原始值;如果 A 列中的值 >= 50 且 < 70,则返回 B 列的值除以 3;如果 A 列中的值 >= 70 且 < 100,则返回 B 列除以 C 列和 3 的返回值。

import pandas as pd 
import numpy as np 
np.random.seed(5) 
df = pd.DataFrame(np.random.randint(100, size=(100, 3)), columns=list('ABC')) 

我的 Python 伪代码:

def Standard(): 
    if (df['A'] >= 0) and (df['A'] < 50): 
        return df['B']  
    if (df['A'] >= 50) and (df['A'] < 70): 
        return df['B']/3 
    if (df['A'] >= 70) and (df['A'] <= 100): 
        return df['B']/df['C']/3 
 
df['B'] = df.apply(Standard, axis = 1) 

它返回:TypeError: ('Standard() takes 0 positional arguments but 1 was given', 'occurred at index 0')

我该如何更正我的代码,或者 Python 中是否有其他更好的方法?感谢您的帮助。