从pandas DataFram中删除列

2024-04-23 23:50:30 发布

您现在位置:Python中文网/ 问答频道 /正文

删除数据帧中的列时,我使用:

del df['column_name']

这很管用。为什么我不能用下面的?

del df.column_name

由于您可以以df.column_name的形式访问列/序列,因此我希望这可以工作。


Tags: 数据namedfcolumn序列形式del
3条回答

在pandas中最好的方法是使用^{}

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

其中1数(行为0,列为1

要删除列而不必重新分配df,可以执行以下操作:

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

最后,要按列数字而不是按列标签删除,请尝试删除第一、第二和第四列:

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)

使用:

columns = ['Col1', 'Col2', ...]
df.drop(columns, inplace=True, axis=1)

这将删除一个或多个列。请注意,inplace=True是在pandas v0.13中添加的,不会在旧版本上工作。在这种情况下,您必须重新分配结果:

df = df.drop(columns, axis=1)

如您所料,正确的语法是

del df['column_name']

由于Python的语法限制,很难让del df.column_name简单地工作。del df[name]在Python的掩护下被翻译成df.__delitem__(name)

相关问题 更多 >