読者です 読者をやめる 読者になる 読者になる

python, pandas.DataFrameにてapply内部のlambda式でtry, exceptを行う

python エラー解決

結論から言うとできないそうです。 もっとも利用するのは DataFrame形式にapplyを使ってデータを変換する時だと思います、自分だけかもしれないですが。

コード

とっさに作った例ですが、データに含まれる文字列の index[0] ~ index[1] 部分を intで変換するケース。 たまに nullが入っているとかで失敗します。(fillnaでもいいか)

try and catch部分

# lambda 式内部に try を記述できないため一旦外部に定義し直す
def try_convert_val(value, indexs):
    try:
        return int(value[indexs[0]:indexs[1]])
    except:
        return -1

変換部分

data["column_name"].apply(lambda x:try_convert_val(x, [0, 4]))

最後に

あけましておめでとうございます。