91956


PandasのDataFrameで、文字列型の列から、整数や浮動小数に変換可能な値をもつ行を抽出する方法を教えていただけないでしょうか？  
Seriesの `str.isidigit()` などを利用することで、次のように整数に変換可能な行は抽出できました。  
さらに小数に型変換可能かどうか判定するには、どのようにしたらよいでしょうか。

[code]

    import pandas as pd
    df = pd.DataFrame(data=[
        {'aa': 'エラー', 'bb': 'BB01'},
        {'aa': '10.5', 'bb': 'BB02'},
        {'aa': '20', 'bb': 'BB02'},
    ])
    display('入力')
    display(df.info())
    display(df)
    
    display('出力')
    df_out = df[df['aa'].str.isdigit()]
    display(df_out)
    
    display('期待する結果')
    df_expected = pd.DataFrame(data=[
        {'aa': '10.5', 'bb': 'BB02'},
        {'aa': '20', 'bb': 'BB02'},
    ])
    display(df_expected)
    
[/code]

[![画像の説明をここに入力](https://i.stack.imgur.com/uTSIQ.png)](https://i.stack.imgur.com/uTSIQ.png)

なおPythonの標準機能では、文字列から小数に変換可能かどうか判定することは困難なようでした。  
<https://neko-py.com/python-type-judge>


CC BY-SA 4.0
2022-11-02T16:15:07.663
91955
2022-11-03T03:55:22.097
2022-11-03T03:55:22.097
3060
35267
question
python python3 pandas
PandasのDataFrameから、整数・浮動小数に変換可能な行を抽出するには

[code]

    >>> df[df.apply(pd.to_numeric, errors='coerce').notna().any(axis=1)]
         aa    bb
    1  10.5  BB02
    2    20  BB02
    
[/code]


CC BY-SA 4.0
2022-11-02T16:28:06.720
91956
2022-11-02T16:28:06.720
47127
91955
answer