pandas 18 - drop,pop,del删除行或列( tcy)

删除 2018/12/14

函数: 

s.drop(labels=None)                                   # 删除系列指定标签;原数据不变
df.drop(labels=None, axis=0, index=None, columns=None,
            level=None, inplace=False, errors='raise')# 按轴从行或列中删除指定的标签;原数据不变
参数:
    labels=None:单标签或标签列表#要删除的索引或列标签;同时指定axis
    axis=0:{0或'index',1或'columns'}
        # 是否从索引0或'index'或列(1或'columns')中删除标签。
    index,columns:单个标签或类似列表
        # 指定轴的替代方法等价labels, axis=1columns=labels
    level:int或level name#MultiIndex,将从中删除标签的级别。
    inplace=False:为True则进行就地操作并返回None。
    errors ='raise': {'ignore', 'raise'}# ignore禁止错误,仅删除现有标签
返回:DataFrame  

序列删除: 

del s['d'] #序列删除;原数据改变 # del s1.d #错误用法
s.pop('d') #弹出;参数必须为标签str;原数据改变

s.drop('d')       #删除数据‘d' ; 原数据不变
s.drop(['c','d']) #删除数据‘'c',d'  

数据帧删除: 

df=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['A','B','C'])

#删除列
del df['B'] # 数据帧删除;原数据改变
df.pop('B') # 列弹出;原数据改变

df.drop(['A','B'],axis=1) #删除列; 原数据不变
df.drop(columns=['A','B'])#删除列; 原数据不变

df.drop(['a','b'])        #通过索引删除行; 原数据不变 df.drop([0, 1])
df.drop(index=['a','b'])  #通过索引删除行; 原数据不变  

多索引删除:  

midx = pd.MultiIndex(levels=[['Tom', 'Bob', 'Jam'], ['ss1', 'ss2', 'ss3']],
           labels=[[0, 0, 0, 1, 1, 1, 2, 2, 2],[0, 1, 2, 0, 1, 2, 0, 1, 2]],names=['name','item'])#创建多索引
df = pd.DataFrame(index=midx, columns=['min','v', 'max'],
                  data=[ [11,12,13],[21,22,23], [31,32,33], #Tom收入,体重,身高
                         [14,15,16],[24,25,26], [34,35,36], # Bob收入,体重,身高
                         [17,18,19],[27,28,29], [37,38,39]])# Jam收入,体重,身高
df
    
           min   v  max
name item
Tom  ss1    11  12   13
     ss2    21  22   23
     ss3    31  32   33
Bob  ss1    14  15   16
     ss2    24  25   26
     ss3    34  35   36
Jam  ss1    17  18   19
     ss2    27  28   29
     ss3    37  38   39
    
df.drop(index='Bob', columns='min')#删除索引Bob和列min
    
            v  max
name item
Tom  ss1   12   13
     ss2   22   23
     ss3   32   33
Jam  ss1   18   19
     ss2   28   29
     ss3   38   39
    
df.drop(index='Tom', level=0)
df.drop(index='Tom', level='name')
    
           min   v  max
name item
Bob  ss1    14  15   16
     ss2    24  25   26
     ss3    34  35   36
Jam  ss1    17  18   19
     ss2    27  28   29
     ss3    37  38   39
    
df.drop(index='ss3', level=1)
df.drop(index='ss3', level='item')
    
           min   v  max
name item
Tom  ss1    11  12   13
     ss2    21  22   23
Bob  ss1    14  15   16
     ss2    24  25   26
Jam  ss1    17  18   19
     ss2    27  28   29
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值