Pandas - 删除 DataFrame 的最后一列

新手上路,请多包涵

我有一个 DataFrame,我想删除它的最后一列。直到现在,我才刚刚放弃了我认为是最后一栏的内容

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

然而,就在这个命令之前,我删除了 NaN 的所有列。所以删除列 [3] 因为它充满了 NaN s,所以它失败了。

我想说的是只删除整个 DataFrame 的最后一列。我觉得那会很完美。

我尝试了 fish_frame([:-1], axis=1) 但这是无效语法。

任何帮助将不胜感激谢谢。

数据框:

 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

原文由 theprowler 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.5k
2 个回答

使用 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

原文由 piRSquared 发布,翻译遵循 CC BY-SA 3.0 许可协议

如果你想删除最后一列

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

如果需要使用索引删除特定列

df = df.drop(df.columns[column_index],axis=1)

列名

df = df.drop(['column_name'],axis =1)

原文由 Wickkiey 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题