>>> A = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['x','y','z']) >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9
#4行目(d行)を追加します。 #スカラーで指定 >>> A.loc['d']=0 >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 0 0 0 #リストで指定 >>> A.loc['d']=[10,11,12] >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 10 11 12 >>> bl=[10,11,12] >>> A.loc['d']=bl >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 10 11 12 #Numpy配列で指定 >>> bn=np.array([10,11,12]) >>> A.loc['d']=bn >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 10 11 12
#4、5行目(d、e行)を追加します。 >>> bp=pd.DataFrame([[10,11,12],[13,14,15]],index=['d','e'],columns=['x','y','z']) >>> bp x y z d 10 11 12 e 13 14 15 >>> A=A.append(bp) >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 10 11 12 e 13 14 15 #追加するDataFrameの列に欠損がある場合は'NaN'が入ります。 >>> bp=pd.DataFrame([[10,12],[13,15]],index=['d','e'],columns=['x','z']) >>> bp x z d 10 12 e 13 15 >>> A.append(bp) x y z a 1 2.0 3 b 4 5.0 6 c 7 8.0 9 d 10 NaN 12 e 13 NaN 15 #データを指定せず、indexとcolumnsだけ指定する場合、データには'NaN'が入ります。 >>> bp=pd.DataFrame(index=['d','e'],columns=['x','y','z']) >>> bp x y z d NaN NaN NaN e NaN NaN NaN >>> A=A.append(bp) >>> A x y z a 1.0 2.0 3.0 b 4.0 5.0 6.0 c 7.0 8.0 9.0 d NaN NaN NaN e NaN NaN NaN #追加するDataFrameのindex、columnsを指定しなかった場合 >>> bp=pd.DataFrame([[10,12],[13,15]]) >>> A.append(bp) x y z 0 1 a 1.0 2.0 3.0 NaN NaN b 4.0 5.0 6.0 NaN NaN c 7.0 8.0 9.0 NaN NaN d 10.0 NaN 12.0 NaN NaN e 13.0 NaN 15.0 NaN NaN 0 NaN NaN NaN 10.0 12.0 1 NaN NaN NaN 13.0 15.0
#指定した一行を削除する場合 ********************** >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 0 0 0 #に対し'd'行を削除します >>> A=A.drop('d') >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 #もし次のように指定すれば、 >>> A.drop('d') x y z a 1 2 3 b 4 5 6 c 7 8 9 >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 0 0 0 #となってAは書き換わりません。
#指定した複数行を削除する場合 ******************** >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9 d 10 11 12 e 13 14 15 #に対し、'd','e'行を削除します。 >>> A=A.drop(['d','e']) >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9
#スカラーで指定 >>> A['w']=0 #A.loc[:,"w"]=0でも同じ結果 >>> A x y z w a 1 2 3 0 b 4 5 6 0 c 7 8 9 0 #リストで指定 >>> bl = [10,11,12] >>> A['w']=bl #A.loc[:,"w"]=blでも同じ結果 >>> A x y z w a 1 2 3 10 b 4 5 6 11 c 7 8 9 12 #Numpy配列で指定 >>> bn=np.array([10,11,12]) >>> A['w']=bn #A.loc[:,"w"]=bnでも同じ結果 >>> A x y z w a 1 2 3 10 b 4 5 6 11 c 7 8 9 12
#追加データフレーム >>> bpd=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['u','v','w']) >>> bpd u v w a 1 2 3 b 4 5 6 c 7 8 9 #右側に追加 >>> pd.concat([A,bpd],axis=1) x y z u v w a 1 2 3 1 2 3 b 4 5 6 4 5 6 c 7 8 9 7 8 9 #左側に追加 >>> pd.concat([bpd,A],axis=1) u v w x y z a 1 2 3 1 2 3 b 4 5 6 4 5 6 c 7 8 9 7 8 9 #追加するDataFrameのindex、columnsを指定しなかった場合 >>> bpd=pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]]) >>> pd.concat([A,bpd]) x y z 0 1 2 a 1.0 2.0 3.0 NaN NaN NaN b 4.0 5.0 6.0 NaN NaN NaN c 7.0 8.0 9.0 NaN NaN NaN 0 NaN NaN NaN 1.0 2.0 3.0 1 NaN NaN NaN 4.0 5.0 6.0 2 NaN NaN NaN 7.0 8.0 9.0 >>> pd.concat([A,bpd],axis=1) x y z 0 1 2 a 1.0 2.0 3.0 NaN NaN NaN b 4.0 5.0 6.0 NaN NaN NaN c 7.0 8.0 9.0 NaN NaN NaN 0 NaN NaN NaN 1.0 2.0 3.0 1 NaN NaN NaN 4.0 5.0 6.0 2 NaN NaN NaN 7.0 8.0 9.0 >>> pd.concat([A,bpd],axis=0) x y z 0 1 2 a 1.0 2.0 3.0 NaN NaN NaN b 4.0 5.0 6.0 NaN NaN NaN c 7.0 8.0 9.0 NaN NaN NaN 0 NaN NaN NaN 1.0 2.0 3.0 1 NaN NaN NaN 4.0 5.0 6.0 2 NaN NaN NaN 7.0 8.0 9.0
>>> A x y z w a 1 2 3 10 b 4 5 6 11 c 7 8 9 12 >>> A=A.drop('w',axis=1) >>> A x y z a 1 2 3 b 4 5 6 c 7 8 9
>>> A x y z u v w a 1 2 3 1 2 3 b 4 5 6 4 5 6 c 7 8 9 7 8 9 #に対し、u,v列を削除します。 >>> A.drop(['u','v'],axis=1) x y z w a 1 2 3 3 b 4 5 6 6 c 7 8 9 9