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

你可能感兴趣的:(pandas)