Pandas Series.str.strip()() 関数

Pandas よく使う関数


Series.str.strip()は、Pandas で文字列の両端の空白文字を除去するための関数です。

データ処理の過程で、ユーザー入力やファイルから読み取ったテキストデータをクリーンアップする必要がよくあります。これらのデータの両端には余分なスペース、タブ、改行が含まれることがあります。strip()この関数は文字列の両端の空白文字を除去し、データをよりきれいに整えます。

単語の意味:strip「剥がす、除去する」という意味で、ここでは文字列の両端の空白文字を除去することを示します。


基本構文とパラメータ

str.strip()は Series の文字列アクセサメソッドです。そのため、まず文字列を含む Series を用意し、次に.strアクセサを使用して呼び出す必要があります。

構文形式

Series.str.strip(to_strip=None)

パラメータの説明

パラメータ 型 必須かどうか 説明 デフォルト値
to_strip str 任意 除去する文字のセットを指定します。指定しない場合、デフォルトで空白文字(スペース、タブ、改行など)を除去します。 None(空白文字)

関数の説明

  • 戻り値:両端の空白文字を除去した新しい Series を返します。
  • 効果:各文字列要素の両端の空白文字を除去します。途中の空白文字はそのまま保持されます。
  • 注意:文字列の両端の文字だけを除去し、途中の文字には影響しません。

実例

簡単なものから複雑なものまでの一連の例を通して、str.strip()使い方を徹底的にマスターしましょう。

例1: 基本的な使い方 - 両端の空白を除去

実例

import pandas as pd

# 空白文字を含む Series を作成
s = pd.Series(['  hello  ', 'tworldt', 'nサンプルn', '  python  '])

# str.strip() を使用して両端の空白を除去
result = s.str.strip()

print("元の Series:")
print(repr(s))  # repr() を使用して元の文字を表示(不可視文字を含む)
print("n空白除去後の結果:")
print(result)

出力結果:

原始 Series:
0     '  hello  '
1     'tworldt'
2      'nサンプルn'
3     '  python  '
dtype: object

去除空白后的结果:
0    hello
1    world
2    サンプル
3    python

コード解説:

  1. pd.Series([' hello ', ...])空白文字を含む Series を作成しました。
  2. repr(s)文字列の元の内容を表示するために使用され、スペース、タブなどの不可視文字を含みます。
  3. s.str.strip()各文字列の両端の空白文字を除去しました。
  4. 文字列の途中にある空白文字はそのまま保持されます。

例2: 指定した文字を除去

パラメータを指定することで、to_strip除去したい文字を指定できます。

実例

import pandas as pd

# 特定の文字を含む Series を作成
s = pd.Series(['xxxhello xxx', 'yyyworldyyy', 'zzzサンプルzzz'])

# 両端の 'x' 文字を除去
result_x = s.str.strip('x')
# 両端の 'y' 文字を除去
result_y = s.str.strip('y')
# 両端の 'z' 文字を除去
result_z = s.str.strip('z')

print("元の Series:")
print(s)
print("n'x' 除去後の結果:")
print(result_x)
print("n'y' 除去後の結果:")
print(result_y)
print("n'z' 除去後の結果:")
print(result_z)

出力結果:

原始 Series:
0    xxxhello xxx
1    yyyworldyyy
2    zzzサンプルzzz
dtype: object

去除 'x' 后的结果:
0    hello xxx
1    yyyworldyyy
2    zzzサンプルzzz

去除 'y' 后的结果:
0    xxxhello xxx
1    worldyyy
2    zzzサンプルzzz

去除 'z' 后的结果:
0    xxxhello xxx
1    yyyworldyyy
2    サンプルzzz

コード解説:

  • strip('x')文字列の両端の 'x' 文字のみを除去します。
  • 文字列の途中にも同じ文字がある場合、それは除去されません。
  • 両端に連続して現れる文字のみが除去されます。

例3: 実データのスペース問題を処理

ファイルやユーザー入力から取得したデータを処理する場合、strip()非常に役立ちます。

実例

import pandas as pd

# フォームから収集したユーザー名データをシミュレーション(余分なスペースを含む可能性あり)
usernames = pd.Series(['  admin  ', 'user123', '  moderator  ', 'guest'])

# ユーザー名をクリーンアップ
cleaned_usernames = usernames.str.strip()

print("元のユーザー名:")
print(usernames)
print("nクリーンアップ後のユーザー名:")
print(cleaned_usernames)

# 空白を除去した後に比較
print("n空白除去後に等しいか:")
print(cleaned_usernames == 'admin')

出力結果:

原始用户名:
0       admin
1      user123
2    moderator
3        guest
dtype: object

清理后的用户名:
0       admin
1      user123
2    moderator
3       guest

清理后的用户名:
0     True
1    False
2    False
3    False

コード解説:

  • strip()ユーザー名の前後のスペースをクリーンアップしました。
  • これにより、ユーザー入力が' admin '正しく一致することが保証されます。'admin'。
  • これはデータクレンジングの重要なステップであり、スペースによるマッチング失敗を防ぐことができます。

関連関数

Pandas には空白を除去する他の関数もあります:

  • str.lstrip()- 文字列の左側(先頭)の空白文字のみを除去します。
  • str.rstrip()- 文字列の右側(末尾)の空白文字のみを除去します。

実例

import pandas as pd

s = pd.Series(['  hello world  '])

print("元の文字列:", repr(s[0]))
print("strip():", repr(s.str.strip()[0]))       # 両端を除去
print("lstrip():", repr(s.str.lstrip()[0]))     # 左側を除去
print("rstrip():", repr(s.str.rstrip()[0]))     # 右側を除去

出力結果:

原始字符串: '  hello world  '
strip(): 'hello world'
lstrip(): 'hello world  '
rstrip(): '  hello world'

注意事項

  • str.strip()デフォルトでは空白文字を除去します。スペース、タブ(t)、改行(n)、復帰(r)などが含まれます。
  • この関数は文字列の両端の文字だけを除去し、途中の文字には影響しません。
  • Series に NaN 値が含まれる場合、strip()NaN が返されます。
  • この関数は新しい Series を返し、元のデータは変更されません。

Pandas よく使う関数

その他の拡張