当对DataFrame的一列做map或其他可对Series所做的操作时,如出现以下报错:AttributeError: ‘DataFrame’ object has no attribute
原因:
在map操作前,对DataFrame的列进行rename,导致python把两个同名列识别为DataFrame(实际应为Series)
解决办法:
1.rename后的字段与现有字段区分
2.rename前drop掉现有字段
可在rename前后加一个简单的小检验,确保rename后无重复字段
# 示例
import pandas as pd
df = pd.DataFrame({'colA':[1,2,3],'colB':['1','2','3'],'colC':['1','2','3']})
ori_col = df.columns
df = df.rename(columns={'colC':'colA'})
new_col = df.columns
assert len(set(ori_col))==len(set(new_col)), 'rename前后字段数发生变化,请检查是否存在重名字段'