I have a DataFrame and I would like to drop the last column of it. Until now I had just been dropping what I believed to be the final column with
if len(fish_frame.columns) == 4:
del fish_frame[3].
Right before this command, however, I drop all columns of NaNs. So that removes column [3] because it is filled with NaNs, so it fails.
I would like to say just drop the final column of the entire DataFrame. I feel like that would work perfectly.
I tried fish_frame([:-1], axis=1) but that's invalid syntax.
Any help would be appreciated thanks.
The 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
解决方案
Use iloc and list indexing
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