如何根据特定列中的 NaN 值删除 df 中的行,而不是使用列名而是子集的整数位置?

How to drop rows in a df based on NaN values in specific columns not using column names but integer position for the subset?

我有一个包含 9 列(长而神秘的列名称)和约 1000 行的数据框。我只想 drop/delete 第 2 列和第 3 列中的值为 NaN 的行。

我知道有 DataFrame.dropna(subset=[]) 但我不想 select 按标签而是按位置的列。

有办法吗?无法重命名列。

我的解决方案: df.dropna(subset=df.columns[[2,3]], how='all')


编辑: 这是我的数据框的一些行:(重要的列是温度和事件)

              Datum Zeit   Zeitzone  \
Anz.                                  
926  2019-09-17 09:00:00  GMT+02:00   
927  2019-09-17 10:00:00  GMT+02:00   
928  2019-09-17 11:00:00  GMT+02:00   
929  2019-09-17 12:00:00  GMT+02:00   
930  2019-09-17 13:00:00  GMT+02:00   
931  2019-09-17 13:10:32  GMT+02:00   
932  2019-09-17 13:11:21  GMT+02:00   
933  2019-09-17 13:11:41  GMT+02:00   
934  2019-09-17 13:11:42  GMT+02:00   
935  2019-09-17 13:11:53  GMT+02:00   

      Temp., °C (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 1m)  \
Anz.                                                              
926                                              12.401           
927                                              13.942           
928                                              15.760           
929                                              15.569           
930                                              15.187           
931                                                 NaN           
932                                                 NaN           
933                                                 NaN           
934                                                 NaN           
935                                                 NaN           

      Event, units (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 0,2 mm Niederschlag)  \
Anz.                                                                                  
926                                                 NaN                               
927                                                 NaN                               
928                                                 NaN                               
929                                                 NaN                               
930                                                 NaN                               
931                                               163.0                               
932                                                 NaN                               
933                                                 NaN                               
934                                                 NaN                               
935                                               163.0                               

     Notiz Koppler verbunden (LGR S/N: 20009596)  \
Anz.                                               
926                                          NaN   
927                                          NaN   
928                                          NaN   
929                                          NaN   
930                                          NaN   
931                                          NaN   
932                                Protokolliert   
933                                          NaN   
934                                Protokolliert   
935                                          NaN   

     Koppler abgetrennt (LGR S/N: 20009596)  \
Anz.                                          
926                                     NaN   
927                                     NaN   
928                                     NaN   
929                                     NaN   
930                                     NaN   
931                                     NaN   
932                                     NaN   
933                           Protokolliert   
934                                     NaN   
935                                     NaN   

     Host verbunden (LGR S/N: 20009596) Angehalten (LGR S/N: 20009596)  \
Anz.                                                                     
926                                 NaN                            NaN   
927                                 NaN                            NaN   
928                                 NaN                            NaN   
929                                 NaN                            NaN   
930                                 NaN                            NaN   
931                                 NaN                            NaN   
932                                 NaN                            NaN   
933                                 NaN                            NaN   
934                       Protokolliert                            NaN   
935                                 NaN                  Protokolliert   

     Dateiende (LGR S/N: 20009596)  
Anz.                                
926                            NaN  
927                            NaN  
928                            NaN  
929                            NaN  
930                            NaN  
931                            NaN  
932                            NaN  
933                            NaN  
934                            NaN  
935                  Protokolliert  

这就是我想要的样子(我留下索引是为了让它更显眼):

              Datum Zeit   Zeitzone  \
Anz.                                  
926  2019-09-17 09:00:00  GMT+02:00   
927  2019-09-17 10:00:00  GMT+02:00   
928  2019-09-17 11:00:00  GMT+02:00   
929  2019-09-17 12:00:00  GMT+02:00   
930  2019-09-17 13:00:00  GMT+02:00   
931  2019-09-17 13:10:32  GMT+02:00   
935  2019-09-17 13:11:53  GMT+02:00   

      Temp., °C (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 1m)  \
Anz.                                                              
926                                              12.401           
927                                              13.942           
928                                              15.760           
929                                              15.569           
930                                              15.187           
931                                                 NaN           
935                                                 NaN           

      Event, units (LGR S/N: 20009596, SEN S/N: 20009596, LBL: 0,2 mm Niederschlag)  \
Anz.                                                                                  
926                                                 NaN                               
927                                                 NaN                               
928                                                 NaN                               
929                                                 NaN                               
930                                                 NaN                               
931                                               163.0                               
935                                               163.0                               

     Notiz Koppler verbunden (LGR S/N: 20009596)  \
Anz.                                               
926                                          NaN   
927                                          NaN   
928                                          NaN   
929                                          NaN   
930                                          NaN   
931                                          NaN   
935                                          NaN   

     Koppler abgetrennt (LGR S/N: 20009596)  \
Anz.                                          
926                                     NaN   
927                                     NaN   
928                                     NaN   
929                                     NaN   
930                                     NaN   
931                                     NaN   
935                                     NaN   

     Host verbunden (LGR S/N: 20009596) Angehalten (LGR S/N: 20009596)  \
Anz.                                                                     
926                                 NaN                            NaN   
927                                 NaN                            NaN   
928                                 NaN                            NaN   
929                                 NaN                            NaN   
930                                 NaN                            NaN   
931                                 NaN                            NaN   
935                                 NaN                  Protokolliert   

     Dateiende (LGR S/N: 20009596)  
Anz.                                
926                            NaN  
927                            NaN  
928                            NaN  
929                            NaN  
930                            NaN  
931                            NaN  
935                  Protokolliert  

与其删除您不想要的行,不如尝试保留您想要的行:

df[df.iloc[:,[2,3]].notnull().all(axis=1)]

但是按索引获取列名有什么问题?

df.dropna(subset=df.columns[[2,3]])