我目前正在Azure Databricks上使用Python。最近,您正在使用的群集进行了更新,现在我的解决方案无法正确运行。我今天的错误恰恰是:
NameError: ("name 'ajuste_fecha' is not defined", 'occurred at index 0')
代码如下:
from pyspark.sql.types import *
from pyspark.sql.functions import *
import pandas as pd
import datetime
# from datetime import datetime
from pyspark.sql import SQLContext
import json
import re
import requests
from pandas.io.json import json_normalize
import json
import os
from os import listdir
from os.path import isfile, join
import io
def f_ajuste_fecha(fecha):
global ajuste_fecha
if fecha[0:3] == "Ene" :
ajuste_fecha = "01"
elif fecha[0:3] == "Feb" :
ajuste_fecha = "02"
elif fecha[0:3] == "Mar" :
ajuste_fecha = "03"
elif fecha[0:3] == "Abr" :
ajuste_fecha = "04"
elif fecha[0:3] == "May" :
ajuste_fecha = "05"
elif fecha[0:3] == "Jun" :
ajuste_fecha = "06"
elif fecha[0:3] == "Jul" :
ajuste_fecha = "07"
elif fecha[0:3] == "Ago" :
ajuste_fecha = "08"
elif fecha[0:3] == "Sep" :
ajuste_fecha = "09"
elif fecha[0:3] == "Oct" :
ajuste_fecha = "10"
elif fecha[0:3] == "Nov" :
ajuste_fecha = "11"
elif fecha[0:3] == "Dic" :
ajuste_fecha = "12"
return ajuste_fecha
res = requests.get("https://estadisticas.bcrp.gob.pe/estadisticas/series/api/PD04637PD/csv/")
df = pd.read_csv(io.StringIO(res.text.strip().replace("<br>","\n")), engine='python')
df.rename(columns={'Tipo de cambio - TC Interbancario (S/ por US$) - Compra':'valor'} , inplace=True)
df.rename(columns={'Día/Mes/Año':'fecha'} , inplace=True)
df['periodo_temp'] = df.apply(lambda x : x['fecha'][3:9],axis=1)
df['periodo_temp_2'] = df.apply(lambda x : '20' + x['fecha'][7:9] + '-' + f_ajuste_fecha(x['periodo_temp'][0:3]) + '-' + x['fecha'][0:2] ,axis=1)
df['periodo'] = pd.to_datetime(df['periodo_temp_2'], format='%Y-%m-%d')
df_temp = df[df['periodo'] == df['periodo'].max()]
df_2 = df_temp[['periodo', 'valor']]
df_dolar = df_2
df_dolar
正如我提到的,之前我没有这个问题。我尝试了函数外部的实例ajuste_fecha = ''
,但也没有成功
我做错了什么?原因是什么
提前非常感谢,我会留意你的回答
你好
您得到的Api响应与
f_ajuste_fecha
方法中的任何条件都不匹配。这就是为什么会出现错误name 'ajuste_fecha' is not defined
可能是更新将输出从
Sep
更改为Set
,我只是通过点击API进行检查您需要更新匹配
Set
而不是Sep
的代码条件因此,请尝试这样做-将ajuste_fecha作为全局删除,并为其分配一个随机字符串“abc”,如
ajuste_fecha ='abc'
并运行它。你不会注意到那个错误相关问题 更多 >
编程相关推荐