Pandasでセルに余計なカンマが含まれるリストの整形方法

こんばんはエンジニアの眠れない夜です。

pandasでデータを整形をしているとリストの余計なカンマが大量に入ってしまうことがありますよね。

例えばこんなデータです👇

,犬,,,,猫
,,,,,猫,
,犬,,,,
,,,,

上記のようなデータをカンマ区切りのきれいなデーターにする方法がこちらのコードです。

# 前後に文字のない `,` と連続するカンマを取り除く
df['category'] = df['category'].apply(lambda x: re.sub(r'(?:^,|,$|,{2,})', ',', x))
df['category'] = df['category'].apply(lambda x: x.strip(','))

正規表現とsplit(‘,’)で余計なカンマを削除

正規表現で文字列の間にある余計なカンマを取り除きます。

,犬,,,猫,,犬,猫,

正規表現 r'(?:^,|,$|,{2,})’ は以下のパターンにマッチします。

^,: 文字列の先頭にあるカンマ
,$: 文字列の末尾にあるカンマ
,{2,}: 2つ以上連続するカンマ

これでパターンにマッチした部分を単一のカンマに置き換えます。

最後に、文字列の先頭と末尾に余計なカンマが残るのでこれをsplit(',')で削除します。

,犬,猫,犬,猫

未来の自分と誰かの役に立てれば幸いです。
楽しいプログラミングライフを!

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください