Pandas的DataFrame教程——指定位置增加刪除一行一列
阿新 • • 發佈:2018-12-22
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 >>>
參考文獻: