一尘不染

从 Pandas DataFrame 中删除一列

pandas

删除 DataFrame 中的列时,我使用:

del df['column_name']

这很好用。为什么我不能使用以下内容?

del df.column_name

由于可以将列/系列访问为df.column_name,因此我希望这可以工作。


阅读 357

收藏
2022-02-15

共2个答案

一尘不染

在 Pandas 中执行此操作的最佳方法是使用drop

df = df.drop('column_name', 1)

其中1号(0对于行和1列。)

要删除列而无需重新分配df,您可以执行以下操作:

df.drop('column_name', axis=1, inplace=True)

最后,要按列而不是按列标签删除,请尝试删除,例如第 1、第 2 和第 4 列:

df = df.drop(df.columns[[0, 1, 3]], axis=1)  # df.columns is zero-based pd.Index

还使用列的“文本”语法:

df.drop(['column_nameA', 'column_nameB'], axis=1, inplace=True)

注意:v0.21.0(2017 年 10 月 27 日)中引入,drop() 方法接受 index/columns 关键字作为指定轴的替代方法。

所以我们现在可以这样做:

df = df.drop(columns=['column_nameA', 'column_nameB'])
2022-02-15
一尘不染

正确的语法是

del df['column_name']
del df.column_name`由于 Python 中的语法限制,很难简单地完成工作。被Python`del df[name]`翻译成秘密。`df.__delitem__(name)
2022-02-15