Python 无法更改数据帧中的列名

Python 无法更改数据帧中的列名,python,dataframe,Python,Dataframe,我正在处理一些调查数据,并希望用标准偏差绘制一些结果 我可以成功地用std值创建新列,但它会命名该列(问题3,std)。然后我尝试将列重命名为“std”,但列名没有改变 new_df = df.groupby('Respondants')[['Question 3']].agg({'std'}) std_df = df.merge(new_df, left_on=['Respondants'], right_index=True) col_dict = {'Question 3': 'std'}

我正在处理一些调查数据,并希望用标准偏差绘制一些结果

我可以成功地用std值创建新列,但它会命名该列(问题3,std)。然后我尝试将列重命名为“std”,但列名没有改变

new_df = df.groupby('Respondants')[['Question 3']].agg({'std'})
std_df = df.merge(new_df, left_on=['Respondants'], right_index=True)
col_dict = {'Question 3': 'std'} 
std_df.columns = [col_dict.get(x, x) for x in std_df.columns]
我错过了什么

编辑:奇怪的是,我现在尝试:

new_df = df.groupby('Respondants')[['Question 3']].agg({'std'})
std_df = df.merge(new_df, left_on=['Respondants'], right_index=True)
std_df.rename(columns={'(Question 3, std)': 'std'}, inplace=True)
std_df.head(200)
结果是一样的。但如果我尝试:

new_df = df.groupby('Respondants')[['Question 3']].agg({'std'})
std_df = df.merge(new_df, left_on=['Respondants'], right_index=True)
std_df.rename(columns={'Question 1': 'whatever'}, inplace=True)
std_df.head(200)

该列名更改,因此代码可以工作,但不适用于我需要的列。

使用数据框的
重命名功能:

std_df.rename(columns={'(Question 3, std)': 'std'}, inplace=True)

我试过了。还是一样。这可能与使用Anaconda有关吗?经过编辑的原始帖子有更新和澄清。我接受这个答案,因为它应该有效。我将尝试以不同的方式解决这个问题。