gpt4 book ai didi

python - python函数中的变量问题,未定义

转载 作者:行者123 更新时间:2023-12-03 05:32:32 25 4
gpt4 key购买 nike

我目前正在 Azure Databricks 上使用 Python。最近,您正在使用的集群进行了更新,现在我的解决方案无法正常运行。我今天遇到的错误正是:

NameError: ("name 'ajuste_fecha' is not defined", 'occurred at index0')

代码如下:

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&iacute;a/Mes/A&ntilde;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 进行了检查。

Día/Mes/Año,"Tipo de cambio - TC Interbancario (S/ por US$) - Compra"
"08.Set.20","3.54366666666667"
"09.Set.20","3.533"
"10.Set.20","3.54"
"11.Set.20","3.568"
"14.Set.20","3.567"
"15.Set.20","3.54733333333333"
"16.Set.20","3.53633333333333"
"17.Set.20","3.53116666666667"
"18.Set.20","3.52333333333333"
"21.Set.20","3.5455"
"22.Set.20","3.55183333333333"
"23.Set.20","3.57016666666667"
"24.Set.20","3.58033333333333"
"25.Set.20","3.593"
"28.Set.20","3.58816666666667"
"29.Set.20","3.5935"
"30.Set.20","3.59733333333333"
"01.Oct.20","3.60183333333333"
"02.Oct.20","3.618"

您需要更新代码条件以匹配 Set 而不是 Sep

  elif fecha[0:3] == "Set":      #replace Sep with Set here
ajuste_fecha = "09"

关于python - python函数中的变量问题,未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64464785/

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