本文主要是介绍【跟着stackoverflow学Pandas】Delete column from pandas DataFrame-删除列,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近做一个系列博客,跟着stackoverflow学Pandas。
专栏地址:http://blog.csdn.net/column/details/16726.html
以 pandas作为关键词,在stackoverflow中进行搜索,随后安照 votes 数目进行排序:
https://stackoverflow.com/questions/tagged/pandas?sort=votes&pageSize=15
Delete column from pandas DataFrame - 删除列
stackoverflow 地址:https://stackoverflow.com/questions/13411544/delete-column-from-pandas-dataframe
pandas 官方给出了对列的操作,可以参考:
http://pandas.pydata.org/pandas-docs/stable/dsintro.html#column-selection-addition-deletion
引子
DataFrame删除一个列可以采用
del df['column_name']
但是却不能采用
del df.column_name
首先, 运行del df['column_name']
时,python内部其实是运行了 df.__delitem__('column_name')
这个函数,实现了对列的删除。
而 del df.column_name 要做的是考虑删除Dataframe的一个属性,是不允许的。
drop
除了上面提到的 del df['column_name']
, 我们还可以采用drop
函数。
http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.drop.html
# 按照列名删除
df.drop('column_name', axis=1, inplace=True)# 根据索引删除
df.drop(df.columns[[0, 1, 3]], axis=1,inplace=True)# 删除没有的列
df.drop(['col_name_1','col_name_2',...,'col_name_N'],inplace=True,axis=1,errors='ignore')
# errors='ignore', 表示如果要删除的列不在df中,则忽略该错误
inplace 属性
inplace = True
理解为就地修改原有DataFrame, 返回None
df = pd.DataFrame.from_items([('A', [1, 2, 3]), ('B', [4, 5, 6]), ('C', [7,8, 9])], orient='index', columns=['one', 'two', 'three'])df.drop(df.columns[[0]], axis=1, inplace=False)two three
A 2 3
B 5 6
C 8 9In [5]: df
Out[5]:one two three
A 1 2 3
B 4 5 6
C 7 8 9df.drop(df.columns[[0]], axis=1, inplace=True)df
Out[7]:two three
A 2 3
B 5 6
C 8 9
pop (新添加)
col_df = df.pop(col_names)
这篇关于【跟着stackoverflow学Pandas】Delete column from pandas DataFrame-删除列的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!