2017-07-19 87 views
4

私はDataFrameを持っており、その最後の列を削除したいと思います。今まで私は最後のコラムであると信じていたものをドロップしていただけでした。Pandas - DataFrameの最後の列を削除します

if len(fish_frame.columns) == 4: del fish_frame[3]

ただし、このコマンドの直前では、すべての列をNaNにします。そのため、列[3]NaNで満たされているため削除されるため、失敗します。

DataFrame全体の最終列を削除するだけです。それが完璧に働くような気がします。

fish_frame([:-1], axis=1)を試しましたが、無効な構文です。

ご協力いただきありがとうございます。

DATAFRAME:

fish_frame after dropna: 

           0  1  2   4 
0       #0721  NaN NaN   NaN 
1      GBE COD  746 $2.00 $1,492.00 
2      GBW COD 13,894 $0.50 $6,947.00 
3      GOM COD  60 $2.00  $120.00 
4   GB WINTER FLOUNDER 94,158 $0.25 $23,539.50 
5   GOM WINTER FLOUNDER 3,030 $0.50 $1,515.00 
6     GBE HADDOCK 18,479 $0.02  $369.58 
7     GOM HADDOCK  0 $0.02  $0.00 
8     GBW HADDOCK 110,470 $0.02 $2,209.40 
9       HAKE  259 $1.30  $336.70 
10      PLAICE 3,738 $0.40 $1,495.20 
11      POLLOCK 3,265 $0.02  $65.30 
12    WITCH FLOUNDER 1,134 $1.30 $1,474.20 
13      SNE YT 1,458 $0.65  $947.70 
14      GB YT 4,499 $0.70 $3,149.30 
15      REDFISH  841 $0.02  $16.82 
16 54 DAS @ $8.00/DAY = 432.00  NaN NaN  None 

答えて

5

使用ilocと、リストのインデックス

fish_frame = fish_frame.iloc[:, :-1] 

           0  1  2 
0       #0721  NaN NaN 
1      GBE COD  746 $2.00 
2      GBW COD 13,894 $0.50 
3      GOM COD  60 $2.00 
4   GB WINTER FLOUNDER 94,158 $0.25 
5   GOM WINTER FLOUNDER 3,030 $0.50 
6     GBE HADDOCK 18,479 $0.02 
7     GOM HADDOCK  0 $0.02 
8     GBW HADDOCK 110,470 $0.02 
9       HAKE  259 $1.30 
10      PLAICE 3,738 $0.40 
11      POLLOCK 3,265 $0.02 
12    WITCH FLOUNDER 1,134 $1.30 
13      SNE YT 1,458 $0.65 
14      GB YT 4,499 $0.70 
15      REDFISH  841 $0.02 
16 54 DAS @ $8.00/DAY = 432.00  NaN NaN 
+0

それはまったく変わっていないようです。これは、私のデータフレームに見えない列が増えていることを意味しますか? – theprowler

+1

@theprowler結果を再割り当てするために投稿を更新しました。 – piRSquared

+0

Ok gotcha。それは完璧にうまくいった。ちょうど私が理解している: 'iloc'はインデックス作成の際に使用する最良の方法ですか?私はそれをたくさん見てきました – theprowler

2

使用する列のインデックスをドロップします。

fish_frame = fish_frame.drop(fish_frame.columns[-1],axis=1) 

出力:

       0  1  2 
0       #0721  NaN NaN 
1      GBE COD  746 $2.00 
2      GBW COD 13,894 $0.50 
3      GOM COD  60 $2.00 
4   GB WINTER FLOUNDER 94,158 $0.25 
5   GOM WINTER FLOUNDER 3,030 $0.50 
6     GBE HADDOCK 18,479 $0.02 
7     GOM HADDOCK  0 $0.02 
8     GBW HADDOCK 110,470 $0.02 
9       HAKE  259 $1.30 
10      PLAICE 3,738 $0.40 
11      POLLOCK 3,265 $0.02 
12    WITCH FLOUNDER 1,134 $1.30 
13      SNE YT 1,458 $0.65 
14      GB YT 4,499 $0.70 
15      REDFISH  841 $0.02 
16 54 DAS @ $8.00/DAY = 432.00  NaN NaN 
+1

これはOPのデータフレームで動作する可能性が高いです。しかし、一般的な意味では、最後のカラム名がデータフレーム内の他の場所で繰り返されると、それらのカラムも削除されます。プラスワン:-) – piRSquared

+0

ああ..はい。列が重複している場合は、その列名がすべて削除されます。ゴッチャ。 –

関連する問題