从熊猫数据帧中删除列
要删除数据帧中的列,我可以成功使用:
del df['column_name']
但是为什么我不能使用以下呢?
del df.column_name
由于可以访问列/系列,因此我期望这有效。df.column_name
要删除数据帧中的列,我可以成功使用:
del df['column_name']
但是为什么我不能使用以下呢?
del df.column_name
由于可以访问列/系列,因此我期望这有效。df.column_name
在 Pandas 中执行此操作的最佳方法是使用 drop
:
df = df.drop('column_name', axis=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()
所以我们现在可以做:
df = df.drop(columns=['column_nameA', 'column_nameB'])
正如你所猜到的,正确的语法是
del df['column_name']
很难简单地因为Python中的语法限制而工作。 被Python翻译成封面。del df.column_name
del df[name]
df.__delitem__(name)