我有一个DataFrame,我想删除它的最后一列。到目前为止,我刚刚放弃了我认为是
的最后一栏 if len(fish_frame.columns) == 4:
del fish_frame[3]
。
然而,在此命令之前,我删除NaN
的所有列。因此,删除列[3]
,因为它填充了NaN
s,因此失败。
我想说的是删除整个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
答案 0 :(得分:9)
使用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
答案 1 :(得分:3)
使用drop with columns index:
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
输出:
<button class="btn" data-clipboard-demo="" data-clipboard-action="copy" data-clipboard-text="Just because you can doesn't mean you should — clipboard.js">Copy to clipboard</button>
答案 2 :(得分:1)
另一种删除最后一列的方法
df = df[df.columns[:-1]]
答案 3 :(得分:0)
fish_frame.drop(fish_frame.columns[len(fish_frame.columns)-1], axis=1, inplace=True)
答案 4 :(得分:0)
如果要删除最后一列
df = df.iloc[:,:-1]
如果需要删除带有索引的特定列
df = df.drop(df.columns[column_index],axis=1)
具有列名
df = df.drop(['column_name'],axis =1)
希望有帮助!