使用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
中给出的值。
返回:
filled
:NDFrame
除非您指定是这样。
,这不是现场操作。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
,并从那时使用新的。