我有一个大型数据框,其中包含超过 32 个字符的许多变量名。由于我想将 df 导出到每个变量名限制为 32 个字符的 STATA,我需要修改 df 中的变量名以及包含相同变量名及其标签的关联字典。我需要后者的帮助。由于我有许多以相同名称开头的变量,我想通过 for 循环修改它们。考虑以下变量名称:variable_name_is_too_long_1variable_name_is_too_long_50期望的输出:variable_is_too_long_1variable_is_too_long_50我做了什么:for i in [col for col in df if col.startswith('variable_name_')]:
df.rename(columns={i:i.replace('_name','',1)},inplace=True)
dict_labels[i.replace('_name','',1)] = dict_labels.pop(i)列已正确重命名。但是,字典 dict_labels 没有任何反应(没有给出错误),我无法解释它,因为输入看起来是正确的。欢迎任何其他更有效的方式!谢谢你的帮助!
2 回答
30秒到达战场
TA贡献1828条经验 获得超6个赞
尝试以下方法:
for i in [col for col in df if col.startswith('variable_name_')]: df.rename(columns={i:i.replace('_name','',1)},inplace=True) aux = i.replace('_name','',1) dict_label[aux] = dict_label.pop(i)
长风秋雁
TA贡献1757条经验 获得超7个赞
rename_labels = {col: col.replace("name_", "") for col in list(df.columns) if col.startswith("variable_name_")}
df.rename(columns = rename_labels, inplace = True)
dict_labels = {v: k for k, v in rename_labels.items()}
添加回答
举报
0/150
提交
取消