【跟着stackoverflow学Pandas】Delete column from pandas DataFrame-删除列

来源:互联网 发布:ubuntu mysql 数据库 编辑:程序博客网 时间:2024/05/17 16:57

最近做一个系列博客,跟着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  threeA    2      3B    5      6C    8      9In [5]: dfOut[5]:   one  two  threeA    1    2      3B    4    5      6C    7    8      9df.drop(df.columns[[0]], axis=1, inplace=True)dfOut[7]:   two  threeA    2      3B    5      6C    8      9

pop (新添加)

col_df = df.pop(col_names)
阅读全文
0 0
原创粉丝点击