无法从Pandas数据框中删除列

19

我已经将一个Excel表格导入到Pandas中。它有7列是数值型,1列是字符串(一种标记)。

在将标记转换为分类变量后,我正在尝试从Pandas数据帧中删除该字符串列。但是,我无法做到这一点。

以下是代码:

[In] parts_median_temp.columns

[Out] Index([u'PART_NBR', u'PRT_QTY', u'PRT_DOL', u'BTS_QTY', u'BTS_DOL', u'Median', u'Upper_Limit', u'Flag_median'], dtype='object')

我要删除的列是'Flag_median'。

[In] parts_median_temp.drop('Flag_median') 

[Out] ...ValueError: labels ['Flag_median'] not contained in axis

帮我在Pandas数据框中删除Flag_median列。

2个回答

62

你需要使用 inplaceaxis 参数:

parts_median_temp.drop('Flag_median', axis=1, inplace=True)

'inplace' 的默认值为 False,而 'axis' 的默认值是0。 axis = 0 表示按索引删除,而 axis = 1 将按列删除。


1
我想知道为什么这不是正确的答案。因为我尝试过pandas,但是这个才是对我有效的。 - akalanka
或者 parts_median_temp.drop(columns='Flag_median', inplace=True) - JStrahl

4
你可以尝试这样做:
parts_median_temp = parts_median_temp.drop('Flag_median', axis=1)

1
这个方案没生效。必须添加inplace=True才行。谢谢。 - Learnerbeaver
1
@Learnerbeaver 它是有效的,你只需要改变数据框,将 parts_median_temp = 放在 drop 函数之前。所以,我修改了我的答案。我认为这是显而易见的。 - Joe T. Boka

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接