めも

メモ.

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

結論から言うとできないそうです。 もっとも利用するのは 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]))

最後に

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

プライバシーポリシー

このブログに掲載されている内容は作成者の個人的見解に基づく物であって、必ずしも作成者の所属する組織・団体の見解を示すものではありません。また、記載が不正確であったことにより生じたいかなる損害に関しても、責任を負いかねますのでご了承ください。また、本サイトは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイトプログラムである、Amazonアソシエイト・プログラムの参加者です。また、本サイトでは、第三者配信の広告サービス(Googleアドセンス、A8.net)を利用しており、ユーザーの興味に応じた商品やサービスの広告を表示するため、クッキー(Cookie)を使用しております。 クッキーを使用することで当サイトはお客様のコンピュータを識別できるようになりますが、お客様個人を特定できるものではありません。本サイトの管理者への問い合わせ、当ブログのプライバシーポリシーの詳細についてはこちらをご覧ください。