所以我有多個不同的資料框,在同一列名“團隊”下都有不同的團隊名稱。我創建了一個函式來一次運行所有這些,但由于某種原因它沒有執行。
def rename(df):
df = df.replace({'Team':
{'NewEngland' : 'Patriots',
'GreenBay' : 'Packers',
'Pittsburgh' : 'Steelers',
'KansasCity' : 'Chiefs',
'Denver' : 'Broncos',
'Seattle' : 'Seahawks',
'Indianapolis' : 'Colts',
'New Orleans' : 'Saints',
'NewOrleans' : 'Saints',
'Dallas' : 'Cowboys',
'Baltimore' : 'Ravens',
'Philadelphia' : 'Eagles',
'Cincinnati' : 'Bengals',
'Carolina' : 'Panthers',
'Tennessee' : 'Titans',
'Arizona' : 'Cardinals',
'Buffalo' : 'Bills',
'SanFrancisco' : '49ers',
'Minnesota' : 'Vikings',
'Washington' : 'Redskins',
'Chicago' : 'Bears',
'Atlanta' : 'Falcons',
'NYGiants' : 'Giants',
'NYJets' : 'Jets',
'Cleveland' : 'Browns',
'Detroit' : 'Lions',
'Miami' : 'Dolphins',
'TampaBay' : 'Buccaneers',
'Jacksonville' : 'Jaguars',
'Houston' : 'Texans',
'HoustonTexans' : 'Texans',
'Oakland' : 'Raiders',
'SanDiego' : 'Chargers',
'St.Louis' : 'Rams',
'LARams' : 'Rams',
'LAChargers' : 'Chargers',
'LasVegas' : 'Raiders',
'LosAngeles' : 'Rams',
'NewYork' : 'Giants',
'KCChiefs' : 'Chiefs',
'Kansas' : 'Chiefs',
'Tampa' : 'Buccaneers'
}})
如圖所示,當我運行此代碼時,該代碼不起作用 -圖片
如圖所示,我在一堆不同的資料幀上運行了該函式,但是當我對其中一個進行采樣時,“團隊”列沒有任何變化。
我知道我的代碼是正確的,因為當我在函式之外運行代碼時,如下所示:
nfl_07 = nfl_07.replace({'Team':
{'NewEngland' : 'Patriots',
'GreenBay' : 'Packers',
'Pittsburgh' : 'Steelers'
etc.
此代碼出于某種原因有效;我的 nfl_07 資料框具有正確的團隊名稱...我的功能有問題嗎?
uj5u.com熱心網友回復:
replace默認情況下不會就地執行。
在您的函式中,您無法回傳重命名的 DataFrame,當您呼叫該函式時,您無法分配輸出。所以什么也沒有發生。
函式內的賦值df是區域的。它不會影響外部范圍。
要么就地修改:
def rename(df):
df.replace({'Team':
{'NewEngland' : 'Patriots',
'GreenBay' : 'Packers',
# ...
}}, inplace=True)
rename(nfl_07)
或者回傳并重新分配輸出:
def rename(df):
return df.replace({'Team':
{'NewEngland' : 'Patriots',
'GreenBay' : 'Packers',
# ...
}})
nfl_07 = rename(nfl_07)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/512642.html
標籤:熊猫数据框功能
