我在Kaggle中寻找泰坦尼克号问题的解决方案,它有一部分作用:
data['Cabin'] = data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')
上面的代码和仅有的代码有什么区别:
data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')
答案 0 :(得分:0)
data['Cabin'] = data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')
用转换后的列替换“机舱”列。
data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')
返回一个新的Series对象(我想在您的情况下是一列)。
因此,如果您以第二种方式编写它,则原始数据帧将不会更改。如果您以第一种方式编写它,它将改变。
.replace()具有属性inplace
。默认情况下将其设置为False。如果将其设置为True,则data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M', inplace=True)
的行为将等于data['Cabin'] = data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')
答案 1 :(得分:0)
要修改数据数据框中的“机舱”列,请使用:
data['Cabin'] = data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')
推荐的方式是:
data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M', inplace=True)
下面的代码将仅返回新系列。数据DataFrame不会被修改:
data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')