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