1. 程式人生 > >Pandas的DataFrame教程——指定位置增加刪除一行一列

Pandas的DataFrame教程——指定位置增加刪除一行一列

1、刪除一行、一列

>>> df
   A  B  C  D
0  1  3  3  4
1  5  6  7  8
2  1  1  1  1
3  2  3  2  3

#刪除A列,不改變原來的data資料,返回刪除後的新表data_2。axis為1表示刪除列,0表示刪除行。inplace為True表示直接對原表修改。

>>> data_2 = df.drop('A',axis=1,inplace=False)    #刪除列
>>> data_2
   B  C  D
0  3  3  4
1  6  7  8
2  1  1  1
3  3  2  3
>>> df.drop(0,axis=0,inplace=False)               #刪除行
   A  B  C  D
1  5  6  7  8
2  1  1  1  1
3  2  3  2  3
>>>

2、指定位置增加行列

>>> df
   A  B  C   D
0  1  3  3   4
1  5  6  7   8
2  1  1  1   1
3  2  3  2   3
4  7  8  9  10
>>> df.insert(0,'E',[11,12,13,14,15])     #插入一列
>>> df
    E  A  B  C   D
0  11  1  3  3   4
1  12  5  6  7   8
2  13  1  1  1   1
3  14  2  3  2   3
4  15  7  8  9  10
>>> df
    E  A  B  C   D
0  11  1  3  3   4
1  12  5  6  7   8
2  13  1  1  1   1
3  14  2  3  2   3
4  15  7  8  9  10

df.insert(1,'調換',df.pop('A'))  #改變某一列的位置。如:先刪除A列,然後在原表data中第1列插入被刪掉的列。

>>> df
    E  調換  B  C   D
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
>>> df                   字典方式新增一行,append,忽略索引
   a  b  c  d
0  1  3  3  4
1  5  6  7  8
>>>
>>>
>>> row={'a':9,'b':10,'c':11,'d':12}
>>> df.append(row,ignore_index=True)
   a   b   c   d
0  1   3   3   4
1  5   6   7   8
2  9  10  11  12
>>>                      用loc指定位置新增一行
>>> df.loc[2]=[9,10,11,12]
>>> df
   a   b   c   d
0  1   3   3   4
1  5   6   7   8
2  9  10  11  12
>>>

3、按特定順序,插入一行,保證索引按序排列

>>> df
    E  調換  B  C   D
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
>>>
>>> df.loc[5]=[9,9,9,9,9]                     #插入一行,按E列的順序,升序
>>> df
    E  調換  B  C   D
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
5   9   9  9  9   9
>>> df.sort_values(by='E')                    #按E列排序
    E  調換  B  C   D
5   9   9  9  9   9
0  11   1  3  3   4
1  12   5  6  7   8
2  13   1  1  1   1
3  14   2  3  2   3
4  15   7  8  9  10
>>> df1=df.sort_values(by='E')
>>> df1.reset_index()                        #重置索引
   index   E  調換  B  C   D
0      5   9   9  9  9   9
1      0  11   1  3  3   4
2      1  12   5  6  7   8
3      2  13   1  1  1   1
4      3  14   2  3  2   3
5      4  15   7  8  9  10
>>> df2=df1.reset_index()
>>> del df2['index']
>>> df2                                      #刪除掉原來的索引列index
    E  調換  B  C   D
0   9   9  9  9   9
1  11   1  3  3   4
2  12   5  6  7   8
3  13   1  1  1   1
4  14   2  3  2   3
5  15   7  8  9  10
>>>                                         

參考文獻: