I have a pandas dataframe with 1 row, I am trying to extract the values from certain columns to do calculations, error : TypeError: 'NoneType' object is not subscriptable
Failure happends where I have added - **
Code:
result = []
for kur, knb, bm_pp, zzavcurr, wa, datefrom, dateto in zip(df.kur, df.knb, df.bm_pp, df.zzavcurr, df.wa, df.datefrom, df.dateto):
if kur == knb:
result.append(bm_pp)
elif kur != knb and wa == "HUF":
result.append(bm_pp)
elif kur != knb and wa in ("SEK", "DKK", "MXN"):
result.append(bm_pp)
elif kur != knb and knb == 'IA' and wa not in ("SEK", "DKK", "MXN", "USD", "HUF"):
df = getExchangeRate(ctx, knb, wa, bm_pp, zzavcurr, datefrom, dateto, dfTC)
** bm_pp_usd_off = df['bm_pp'].values[0] / df['zzavcurr'].values[0]
bm_pp_c_new = bm_pp_usd_off / df['ukurs'].values[0]
result.append(bm_pp_c_new)
else:
result.append("Fail")
df["bm_pp_c_new"] = result
def getExchangeRate(ctx, knvv_kurst, waers, bm_pp, zzavcurr, datefrom, dateto, dfTC):
if datefrom == dateto:
data = [[knb, wa, bm_pp, zzavcurr, datefrom, dateto]]
df_BA = pd.DataFrame(data, columns=['knb', 'wa', 'bm_pp', 'zzavcurr', 'datefrom', 'dateto'])
dfBA = ctx.spark_session.createDataFrame(df_BA)
dfR = dfBA.join(dfTC, (dfBA.knb == dfTC.kur_TC) & (dfBA.wa == dfTC.fcurr) & ('USD' == dfTC.tcurr) & (dfBA.datefrom == dfTC.gdatu), how='left')
df = dfR.toPandas()
return (df)
else:
data = [[knb, wa, bm_pp, zzavcurr, datefrom, dateto]]
df_BA = pd.DataFrame(data, columns=['knb', 'wa', 'bm_pp', 'zzavcurr', 'datefrom', 'dateto'])
dfBA = ctx.spark_session.createDataFrame(df_BA)
dfR = dfBA.join(dfTC, (dfBA.knb == dfTC.kur_TC) & (dfBA.wa == dfTC.fcurr) & ('USD' == dfTC.tcurr) & (dfBA.datefrom == dfTC.gdatu), how='left')
df = dfR.toPandas()
return (df)
Dataframe:
Head:
Row(knb='IATA', wa='EUR', bm_pp=1.08084, zzavcurr=1926.13, datefrom=datetime.date(2020, 2, 1), dateto=datetime.date(2020, 2, 1), kur='IATA', fcurr='EUR', tcurr='USD', gdatu=datetime.date(2020, 2, 1), ukurs=-0.90202)