0
我已經得到了以下DF: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
出於某種原因,如果我申請的功能,我DF所有的行值爲0:
df['Additional Charge'] = df.apply(lambda r: calculate_costs(r), axis=1)
您能否告訴我我做錯了什麼?
要麼'wdu'是mbs'小於',或'wdu'是'> =''mbs'和無的內條件都爲真。 – byxor
我認爲我已經發現了錯誤....這是由於'|'....但是我可以使用其他什麼來結合1條語句中的不同條件? '或'? –
解決了!它應該是'或' –