連続した半角・全角スペースの除去

空白の値の場合、連続した全角スペースで埋めるというCSVに遭遇したケースの対処法。

import pandas as pd

df = pd.DataFrame({
    "name": [" 田中 太郎", "佐藤  次郎", "山田 三郎", "     徳田虎雄"]
})

# 正規表現を使って半角と全角のスペースを削除
df["name"] = df["name"].str.replace(r"\s+", "")

print(df)

#    name
# 0  田中太郎
# 1  佐藤次郎
# 2  山田三郎
# 3  徳田虎雄

正規表現 “\s+” はスペース、タブ、改行などが該当し、+で1文字以上の繰り返しを指す。

strがreplaceメソッドの前に必要なのは、replaceメソッドがPythonの基本型(整数、浮動小数点、文字列など)に対して使うものだから。

strがない場合、今回のケースだとobject型の場合は基本形ではないのでエラーになる。よってstrが間に必要。

このサイトの主
投稿を作成しました 115

関連投稿

検索語を上に入力し、 Enter キーを押して検索します。キャンセルするには ESC を押してください。

トップに戻る