当前位置: 首页 > 知识库问答 >
问题:

从Pandas DataFrame中删除一列

厍书
2023-03-14

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

del df['column_name']

这工作很棒。为什么我不能用下面的?

del df.column_name

因为可以以df.column_name的方式访问列/Series,所以我希望这能起作用。

共有3个答案

鲜于光赫
2023-03-14

使用:

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

这将就地删除一个或多个列。请注意,inplace=True是在熊猫v0.13中添加的,不适用于旧版本。在这种情况下,您必须将结果分配回:

df = df.drop(columns, axis=1)
谭绍晖
2023-03-14

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

del df['column_name']

仅仅由于Python中的语法限制,很难让del df.column\u name工作deldf[name]在Python的封面下被翻译成df.\uu delitem\uuuu(name)

西门胜涝
2023-03-14

在熊猫中执行此操作的最佳方法是使用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'])
 类似资料:
  • 我为laravel安装了这个Cartalyst Stripe软件包,这对我来说只是个麻烦。。我只是不能让它工作,现在我决定完全删除它。因此,我在composer.json中删除了需要这个包的行。我从提供者的confing/app.php中删除了该行 我错过了什么?

  • 用于从不存在的VM中删除磁盘的所有在线说明都与旧的Azure UI有关,该UI不包含与新门户相同的菜单命令。因此,我需要使用新的Azure管理门户删除孤立磁盘的说明。旧门户的说明对此操作毫无价值。

  • 问题内容: 我正在尝试删除包含特定字符串的特定行。 我有一个名为 numbers.txt 的文件,其内容如下: Peter· Tom TOM1 Inflammation 我要删除的是文件中的那个 tom ,所以我做了以下功能: 输出为: 彼得· 颜 如您所见,问题在于该函数删除了 tom 和 tom1 ,但是我不想删除 tom1 。我只想删除 tom 。这是我想要的输出: 彼得 TOM1 燕 有什

  • 问题内容: 我有一个大文件,只需要删除几行,是否有任何方法可以打开新文件并复制整个文本? 编辑:主要问题是,当它在多个txt filse中运行时,该程序失败 问题答案: 有什么方法可以做到而无需打开新文件并复制整个文本? 不,没有。当然,如果您想 安全地 做的话就没有。 而且也不会真正帮助您。它可以让您用相等数量的字节替换文件中的字节序列,但这并不意味着删除一行。 您可以这样使用RAF: 给定初始

  • 问题内容: 如何使用phpMyAdmin在MySQL表的列上删除“唯一键约束”? 问题答案: 唯一约束也是索引。 首先使用来查找索引的名称。索引的名称存储在该查询结果中调用的列中。 然后,您可以使用DROP INDEX: 或ALTER TABLE语法:

  • 问题内容: 我有以下数组。 我想删除最后一个元素,即2。 我用过,但不会删除值。 问题答案: 使用拼接(索引,多个)