我提出这个问题是为了我的自学。据我所知,以下是删除 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']]
- 其中最好的方法是什么?
- 还有其他方法可以达到同样的目的吗?
原文由 Mohamed Thasin ah 发布,翻译遵循 CC BY-SA 4.0 许可协议
按照 文档:
和
pandas.DataFrame.drop
:所以,我认为我们应该坚持使用
df.drop
。为什么?我认为优点是:它可以用它的参数处理更复杂的情况。例如
level
,我们可以处理 MultiIndex 删除。使用errors
,我们可以防止一些错误。这是一种更加统一和面向对象的方式。
就像@jezrael 在他的回答中指出的那样:
选项 1:使用关键字
del
是一种有限的方式。选项 3:并且
df=df[['b','c']]
本质上什至不是删除。它首先通过使用[]
语法 进行索引来选择数据,然后将名称df
与原始 DataFrame 解除绑定并将其与新 DataFrame 绑定(即df[['b','c']]
)。