以下语句之间有区别吗?

时间:2019-05-31 13:27:41

标签: python

我在Kaggle中寻找泰坦尼克号问题的解决方案,它有一部分作用:

data['Cabin'] = data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')

上面的代码和仅有的代码有什么区别:

data['Cabin'].replace(['A', 'D', 'E', 'T'], 'M')

2 个答案:

答案 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')