从熊猫数据帧中删除列

2022-09-05 00:48:51

要删除数据帧中的列,我可以成功使用:

del df['column_name']

但是为什么我不能使用以下呢?

del df.column_name

由于可以访问列/系列,因此我期望这有效。df.column_name


答案 1

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

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

其中 是号(对于行和列。101

要删除列而不必重新分配,您可以执行以下操作: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()

所以我们现在可以做:

df = df.drop(columns=['column_nameA', 'column_nameB'])

答案 2

正如你所猜到的,正确的语法是

del df['column_name']

很难简单地因为Python中的语法限制而工作。 被Python翻译成封面。del df.column_namedel df[name]df.__delitem__(name)