Pandas - 删除DataFrame的最后一列

the*_*ler 6 python dataframe pandas

我有一个DataFrame,我想删除它的最后一列.到目前为止,我刚刚放弃了我认为最终的专栏

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

但是,在此命令之前,我删除了NaNs的所有列.所以删除列[3]是因为它填充了NaNs,所以它失败了.

我想说只需删除整个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
Run Code Online (Sandbox Code Playgroud)

piR*_*red 13

使用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
Run Code Online (Sandbox Code Playgroud)

  • `iloc`是处理位置要求的惯用方法. (2认同)

Viv*_*han 6

如果你想删除最后一列

df = df.iloc[:,:-1]
Run Code Online (Sandbox Code Playgroud)

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

df = df.drop(df.columns[column_index],axis=1)
Run Code Online (Sandbox Code Playgroud)

带列名

df = df.drop(['column_name'],axis =1)
Run Code Online (Sandbox Code Playgroud)

希望能帮助到你 !


Sco*_*ton 5

将 drop 与列索引一起使用:

fish_frame = fish_frame.drop(fish_frame.columns[-1],axis=1)
Run Code Online (Sandbox Code Playgroud)

输出:

                              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
Run Code Online (Sandbox Code Playgroud)