gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 08:28:45 27 4
gpt4 key购买 nike

<分区>

如果我有以下数据框。我想根据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 中是否有其他更好的方法?感谢您的帮助。

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com