繁体   English   中英

Pandas - 删除 DataFrame 的最后一列

[英]Pandas - drop last column of 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

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

如果你想删除最后一列

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

如果需要删除特定列和索引

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

带列名

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

希望它有帮助!

将 drop 与列索引一起使用:

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

删除最后一列的另一种方法

df = df[df.columns[:-1]]

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM