在R语言中基于另一个DataFrame的值重命名DataFrame列
用DF1的记录替换DF2列名的解决方法
这需求很接地气,我直接给你上代码和清晰解释,保证一步搞定:
先还原你的两个DataFrame结构:
import pandas as pd # 你的DF1 DF1 = pd.DataFrame({'Name': ['M_D', 'ABC123']}) # 你的DF2 DF2 = pd.DataFrame({'PQR': [111, 456], 'LMN': [345, 999]})
核心解决代码
只需要一行就能完成列名替换:
# 把DF1的Name列转为列表,直接赋值给DF2的columns属性 DF2.columns = DF1['Name'].tolist()
执行完之后打印DF2,就能得到你想要的结果:
M_D ABC123 0 111 345 1 456 999
额外提示:严谨性优化
如果担心后续出现DF1记录数和DF2列数不匹配的情况,可以加个判断逻辑避免报错:
if len(DF1) == len(DF2.columns): DF2.columns = DF1['Name'].tolist() else: print("⚠️ DF1的记录数和DF2的列数不相等,无法完成列名替换!")
原理其实很简单:pandas的DataFrame列名本质是一个可迭代的列表/数组,只要把DF1里的目标值转换成列表,直接覆盖原列名就行啦~
内容的提问来源于stack exchange,提问作者Earthshaker
相关产品推荐
相关产品推荐

