要删除 DataFrame 中的列,我可以成功使用:
del df['column_name']
但是为什么我不能使用以下内容?
del df.column_name
由于可以以 df.column_name
访问列/系列,因此我希望这可以工作。
原文由 John 发布,翻译遵循 CC BY-SA 4.0 许可协议
在 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'])
原文由 LondonRob 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
如您所料,正确的语法是
由于 Python 中的句法限制,很难使
del df.column_name
工作。del df[name]
被Python翻译成df.__delitem__(name)
。