2017-03-28 55 views
1

例如,我想改變「韓國」的「國家」列「韓國」,但看起來像「大韓民國」仍然存在:爲什麼不能使用布爾掩碼修改數據框中的值?

df[df['Country'] == 'Republic of Korea']['Country'] = 'South Korea' 
df[df['Country'] == 'Republic of Korea']['Country'] 


164 Republic of Korea 
Name: Country, dtype: object 

回答

2

你是在copy (slice) of original dataframe上工作。嘗試使用dataframe.loc

df.loc[df['Country'] == 'Republic of Korea', 'Country'] = 'South Korea' 

此外,當您運行的代碼,應該有一個警告:

值要試圖從一個數據幀的一個切片的副本設置。

嘗試使用的.loc [row_indexer,col_indexer] =值,而不是

+0

試圖「df.loc [DF [ '國家'] == '大韓民國', '國家'] = '韓國' 「按建議,但國名仍然保持不變...... –

+0

@BingQian你使用df.loc作爲'[row_indexer,col_indexer]'**而不是**'[row_indexer] [col_indexer]'我不認爲它會以後者的方式工作(因爲您再次使用[col_indexer]複製它)。 – umutto

相關問題