删除熊猫列的最佳方法是什么

新手上路,请多包涵

我提出这个问题是为了我的自学。据我所知,以下是删除 pandas 数据框中列的不同方法。

选项1:

 df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
del df['a']

选项 - 2:

 df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
df=df.drop('a',1)

选项 - 3:

 df=pd.DataFrame({'a':[1,2,3,4,5],'b':[6,7,8,9,10],'c':[11,12,13,14,15]})
df=df[['b','c']]

  1. 其中最好的方法是什么?
  2. 还有其他方法可以达到同样的目的吗?

原文由 Mohamed Thasin ah 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 310
2 个回答

按照 文档

DataFrame 是一种 二维标记数据结构,具有可能不同类型的列。

pandas.DataFrame.drop

从行或列中 删除指定的标签

所以,我认为我们应该坚持使用 df.drop 。为什么?我认为优点是:

  1. 它使我们能够更好地控制删除操作:
    # This will return a NEW DataFrame object, leave the original `df` untouched.
   df.drop('a', axis=1)
   # This will modify the `df` inplace. **And return a `None`**.
   df.drop('a', axis=1, inplace=True)

  1. 它可以用它的参数处理更复杂的情况。例如 level ,我们可以处理 MultiIndex 删除。使用 errors ,我们可以防止一些错误。

  2. 这是一种更加统一和面向对象的方式。


就像@jezrael 在他的回答中指出的那样:

选项 1:使用关键字 del 是一种有限的方式。

选项 3:并且 df=df[['b','c']] 本质上什至不是删除。它首先通过使用 [] 语法 进行索引来选择数据,然后将名称 df 与原始 DataFrame 解除绑定并将其与新 DataFrame 绑定(即 df[['b','c']] )。

原文由 YaOzI 发布,翻译遵循 CC BY-SA 4.0 许可协议

删除 pandas 数据框中的列或行的推荐方法是使用 drop。

要删除列,

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

要删除一行,

 df.drop('row_index', axis=0, inplace=True)

您可以参考 这篇文章 以查看有关列删除方法的详细对话。

原文由 razmik 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题