DF.Replace调用不会更改原始数据框架



使用pd.DataFrame.replace,我一直在试图弄清为什么我更换的值还原回他们的原始值时,当我替换另一列中的另一个集合时。您如何在下面的替代品永久性?

titanic.replace({'Pclass' : 
                {3 : 'Lower Class', 
                 2 : 'Middle Class', 
                 1: 'Upper Class'}})

添加Inplace = true

titanic.replace({'Survived':(0:'False',1:'True')},inplace =True)

对于Kaggle Titanic Data,推荐map

d={0:'False',1:'True'}
titanic.Survived=titanic.Survived.map(d)

阅读df.replace文档:

DataFrame.replace(to_replace=None, value=None, inplace=False, 
                       limit=None, regex=False, method='pad', axis=None)

value中给出的to_replace中给出的值。


返回:filledNDFrame

除非您指定是这样。

,这不是现场操作。
titanic.replace({'Survived':(0:'False',1:'True')}, inplace=True)

或,将返回值分配回。

titanic = titanic.replace({'Survived':(0:'False',1:'True')})

不要尝试分配inplace=True时,因为df.replace返回None

代码titanic.replace(...)创建A new DataFrame,然后返回。为了让Python记住此DataFrame,而不仅仅是摆脱它,您需要使用df = titatic.replace(...)将其分配给某物。这里的df可以是任何名称,包括 titanic;如果使用相同的名称,它将摆脱 old DataFrame,并从那时使用新的。

最新更新