使用pd.DataFrame.replace
时,我一直试图找出为什么当我替换另一列中的另一个集时,我替换的值会恢复为原始值。你怎么能在下面永久地替换?
titanic.replace({'Pclass' :
{3 : 'Lower Class',
2 : 'Middle Class',
1: 'Upper Class'}})
答案 0 :(得分:3)
阅读df.replace
文档:
DataFrame.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)
将
to_replace
中的值替换为value
。
返回:
filled
:NDFrame
除非您将其指定为原地操作,否则这不是就地操作。
titanic.replace({'Survived':(0:'False',1:'True')}, inplace=True)
或者,返回返回值。
titanic = titanic.replace({'Survived':(0:'False',1:'True')})
请勿尝试在inplace=True
时分配,因为df.replace
会返回None
。
答案 1 :(得分:2)
添加inplace = True
titanic.replace({'Survived':(0:'False',1:'True')},inplace =True)
对于摇摇欲坠的泰坦尼克号数据,建议map
d={0:'False',1:'True'}
titanic.Survived=titanic.Survived.map(d)
答案 2 :(得分:0)
代码titanic.replace(...)
创建 new DataFrame
,然后返回。为了让Python记住这个DataFrame
而不仅仅是摆脱它,你需要用df = titatic.replace(...)
将它分配给某个东西。此处df
可以是任何名称,包括 titanic
;如果你使用相同的名字,它将摆脱旧 DataFrame
并从那时起使用新的。