迭代帧以删除列

时间:2014-01-28 17:14:18

标签: python pandas

以下for循环迭代两个数据帧不起作用:

for frame in [df_train, df_test]:
    frame = frame.drop('Embarked', axis=1)

我没有收到错误消息,但两个数据框中的“已启用”列未被删除。为什么呢?

1 个答案:

答案 0 :(得分:4)

来自help(frame.drop)

def drop(self, labels, axis=0, level=None, inplace=False, **kwargs):
    """
    Return new object with labels in requested axis removed

    ...

    inplace : bool, default False
        If True, do operation inplace and return None.

现在,您只需创建新对象并将其命名为frame,这不会影响列表中的任何内容。您可以使用inplace=True来影响原始对象:

for frame in [df_train, df_test]:
    frame.drop('Embarked', axis=1, inplace=True)