0
为什么当我重新命名列时,如果新列名已经存在,pandas.DataFrame
对象不会抱怨?当pandas列重命名时创建列名重复时该怎么办
这使得将来引用新的列会返回一个pandas.DataFrame,而不是pandas.Series,这可能会导致更多的错误。
其次,有没有一种建议的方式来处理这种情况?
例子:
import pandas
df = pd.DataFrame({'A' : ['foo','bar'] ,'B' : ['bar','foo'] })
df.B.map({'bar':'foo','foo':'bar'})
# 0 foo
# 1 bar
# Name: B, dtype: object
df.rename(columns={'A':'B'},inplace=True)
现在,下面将失败:
df.B.map({'bar':'foo','foo':'bar'})
#AttributeError: 'DataFrame' object has no attribute 'map'
那么你可能只是测试新的名称是否已存在于您的DF重命名像'd之前= {'A':'B'} if if df.columns.isin(d.values())。any()== False:df,rename(columns = d,inplace = True)' – EdChum