

Pythonでエクセルファイルの数値以外 (文字、空白行等) の行を削除したいのですが、  
どのようにすればよいでしょうか？

空白行の削除だけならば、以下のコードでなんとか実現できたのですが、  
文字や記号などを含む行削除方法がなかなかネットでも見つかりません。

ご存じの方、ご指導頂ければありがたいです。  
よろしくお願いいたします。

**空白行の削除**

[code]

    df = pd.read_excel('target+notarget_未知.xlsx',sheet_name='説明変数')
    df2=df.dropna()
    
[/code]

**エクセルデータ** (青の部分(空欄と文字)を含む行全体(2~6行目)を削除したい)

[![エクセル](https://i.stack.imgur.com/53bMw.jpg)](https://i.stack.imgur.com/53bMw.jpg)


CC BY-SA 4.0
2020-01-05T09:01:34.973
61982
2022-01-19T14:02:45.367
2021-07-11T23:45:18.470
3060
37323
question
python pandas
エクセルファイルから数値以外 (文字、空白行等) の行を削除したい


他のQ&Aサイトの[回答とコメント](https://teratail.com/questions/233334)からサンプルコードを作成しました。  
要点は下記です。

  * Seriesの値を`pd.to_numeric`数値に変換して数値以外を`NaN`にする
  * `df.dropna()`で`NaN`のある行が削除できる`
  * ヘッダ列を除外する場合は`df.columns[1:]`でスライスするか`pd.read_excel`の`index_col`引数で指定する

[code]

    import pandas as pd
    import dataframe as df
    
    df = pd.read_excel('Book1.xlsx',sheet_name='説明変数', index_col=0)
    for i in df.columns:
        df[i] = pd.to_numeric(df[i], errors='coerce')
    df=df.dropna()
    print(df)
    
[/code]


CC BY-SA 4.0
2020-02-22T06:44:19.957
63261
2020-02-22T06:44:19.957
9820
61982
answer