3.10 删除一列
问题描述
从数据帧中删除一列。
解决方案
要删除一列,最好的方式是使用drop方法,并传入参数axis=1(即坐标轴列):

也可以使用一组列名作为参数一次删除多列:

如果某一列没有名字(常常会发生这种情况),可以使用dataframe.columns通过指定列下标的方式删除该列:


讨论
drop是删除一列的常用方法。还有一种方法是del dataframe['Age'],大部分情况下,它都能很好地工作,但考虑到它在pandas内部的调用方式(对此细节的讨论超出了本书的范围),一般不推荐使用。
最好养成一个习惯,永远不使用pandas的inplace=True参数。很多pandas的方法都包含一个inplace参数,当其被设置为True时,会直接修改数据帧本身。在对数据进行一系列更复杂的处理时,这可能会产生一些问题,因为数据帧会被视为可变对象(严格来说确实是这样的)。我推荐将数据帧视为不可变对象。例如:

在这个例子中,我们没有改变dataframe,而是返回了一个新的数据帧对象,这个对象是dataframe修改后的版本dataframe_name_dropped。如果将数据帧视为不可变对象,会省去很多麻烦。



本书评论