Moh*_* ah 11 python dataframe pandas
我正在为自学而提出这个问题.据我所知,以下是删除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']
Run Code Online (Sandbox Code Playgroud)
选项-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)
Run Code Online (Sandbox Code Playgroud)
选项-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']]
Run Code Online (Sandbox Code Playgroud)
YaO*_*OzI 12
按照文档:
DataFrame是一个二维标记数据结构,具有可能不同类型的列.
从行或列中删除指定的标签.
所以,我认为我们应该坚持下去df.drop
.为什么?我认为专业人士是:
它使我们能够更好地控制删除操作:
# 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)
Run Code Online (Sandbox Code Playgroud)它可以用它的args来处理更复杂的情况.例如level
,我们可以处理MultiIndex删除.并且errors
,我们可以防止一些错误.
它是一种更加统一和面向对象的方式.
就像@jezrael在他的回答中所说:
选项1:使用关键字del
是一种有限的方式.
选项3:df=df[['b','c']]
本质上甚至不是删除.它首先通过[]
语法索引来选择数据,然后df
用原始DataFrame 解除绑定名称并将其与新的绑定(即df[['b','c']]
).
小智 9
在 Pandas 数据框中删除列或行的推荐方法是使用 drop。
要删除列,
df.drop('column_name', axis=1, inplace=True)
Run Code Online (Sandbox Code Playgroud)
要删除一行,
df.drop('row_index', axis=0, inplace=True)
Run Code Online (Sandbox Code Playgroud)
您可以参考这篇文章以查看有关列删除方法的详细对话。
归档时间: |
|
查看次数: |
18212 次 |
最近记录: |