я получил следующее ДФ:Python функция не работает
df = pd.DataFrame(columns=['mbs','Wholesale Data Usage'], index=['x','y','z'])
df.loc['x'] = pd.Series({'mbs':32, 'Wholesale Data Usage':36})
df.loc['y'] = pd.Series({'mbs':64, 'Wholesale Data Usage':62})
df.loc['z'] = pd.Series({'mbs':256, 'Wholesale Data Usage':277})
Кроме того, я определил следующую функцию:
def calculate_costs(row):
mbs = row.loc['mbs']
wdu = row.loc['Wholesale Data Usage']
ac = 0
if wdu >= mbs:
if mbs == 32 | mbs == 64:
ac = (wdu - mbs) * 0.05
elif mbs == 128 | mbs == 256:
ac = (wdu - mbs) * 0.036
elif mbs == 512 | mbs == 1024:
ac = (wdu - mbs) * 0.018
return ac
По какой-то причине, если я применить функцию к моему ФРУ все из значения строк равны 0:
df['Additional Charge'] = df.apply(lambda r: calculate_costs(r), axis=1)
Не могли бы вы сообщить, что я делаю неправильно?
Либо 'wdu' это меньше, чем' mbs' или 'wdu' является'> = '' mbs' и ни один из внутренних условий True. – byxor
Я думаю, что я заметил ошибку ... это связано с '' '.... но что я могу использовать иначе, чтобы комбинировать разные условия в 1 if-заявлении? 'Or'? –
решил! он должен быть 'или' –