Jupyter Notebooks中使用Python修改Pandas DataFrame列名问题求助
Pandas DataFrame列名0重命名失败解决方案
错误原因
你当前重命名操作失效的核心原因是:通过pd.DataFrame(motorsport)生成的单列DataFrame,默认列名是整数类型的0,而非字符串类型的'0',你使用字符串'0'作为匹配键无法命中目标列。
可用解决方案
方案1:直接修正rename的匹配键
把rename方法中columns参数的键改为整数0即可生效,修改后代码如下:
import pandas as pd data=pd.read_csv("Automobile.csv") motorsport = ['yes', 'no', 'yes', 'no', 'yes', 'yes', 'yes', 'no'] motorsport = pd.DataFrame(motorsport) data2 = pd.concat([data,motorsport], axis=1, sort=False) # 把字符串'0'改为整数0即可匹配到目标列 data2 = data2.rename(columns={0: 'motorsport'})
方案2:创建DataFrame时直接指定列名(更推荐)
在生成motorsport对应的DataFrame时就直接定义列名,无需后续额外重命名操作,代码逻辑更简洁:
import pandas as pd data=pd.read_csv("Automobile.csv") motorsport_list = ['yes', 'no', 'yes', 'no', 'yes', 'yes', 'yes', 'no'] # 生成DataFrame阶段直接指定列名 motorsport = pd.DataFrame(motorsport_list, columns=['motorsport']) data2 = pd.concat([data,motorsport], axis=1, sort=False)
内容的提问来源于stack exchange,提问作者Nuwan Fernando
相关产品推荐
相关产品推荐

