Pandas 通过循环更改列名

Pandas 通过循环更改列名,pandas,database,loops,rename,Pandas,Database,Loops,Rename,我试图通过循环更改中的列的名称,但我看不到我的错误。我试图运行的代码是:} temp=pd.read_csv('comuna.csv') comuna=temp['comuna'].to_numpy() lista = ['mean_temperature','tasmax_mean','tasmin_mean', 'drought_periods', 'huss_mean', 'pr_sum', 'simple_precip_intensity_index', 'snow_sum', 'spi

我试图通过循环更改中的列的名称,但我看不到我的错误。我试图运行的代码是:}

temp=pd.read_csv('comuna.csv')
comuna=temp['comuna'].to_numpy()
lista = ['mean_temperature','tasmax_mean','tasmin_mean', 'drought_periods', 'huss_mean', 'pr_sum', 'simple_precip_intensity_index', 'snow_sum', 'spi', 'vel_max']

for comuna in comuna:
    for var in lista:
        url="https://arclim.mma.gob.cl/api/series/{var}/comunas/{comuna}/annual/"
        url=(url.format(var=var, comuna=comuna))
        rr = requests.get(url)
        data= rr.text
        a_json =json.loads(data)
        df=pd.DataFrame.from_dict(a_json, orient="index").T
        df1=df[['mean', 'years']]
        df1= df1.rename({'mean': var, axis=1 })
        df1['id_com'] = comuna
但是,当a希望将列mean重命名为var中相应的字符串时,我得到一个错误o名称没有更改


非常感谢您的帮助。

我认为您的重命名可能有误<代码>轴应在映射指令之外。即,尝试:
df1=df1。重命名({'mean':var},轴=1)
。另外,您可能希望用其他内容替换comuna:中的comuna的
,否则,您将覆盖循环中的
comuna
变量(这有点难读);)