Pandas Series.str_len() 関数

Pandas 常用函数Pandas よく使う関数


Series.str.len()Pandasで文字列の長さを計算するための関数です。

データ処理の過程で、入力の長さの検証、特定の長さのテキストの抽出、テキストの長さ分布の分析など、文字列の長さ情報を把握する必要がよくあります。len()この関数は、各文字列要素の文字数を返します。

単語の意味:len「length」(長さ)の略であり、文字列の文字数を返すことを示します。


基本構文とパラメータ

str.len()はSeriesの文字列アクセサメソッドです。したがって、まず文字列を含むSeriesが必要です。次に、.strアクセサを介して呼び出します。

構文形式

Series.str.len()

パラメータの説明

  • パラメータ:パラメータなし。この関数はパラメータを必要とせず、直接呼び出すことができます。

関数の説明

  • 戻り値:各文字列の文字数を表す整数のSeriesを返します。
  • 効果:Series内の各文字列要素の文字数(空白と特殊文字を含む)を計算します。
  • 注意:非文字列要素の場合は、その文字列表現の長さを返します。

例

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

例1:基本的な使い方 - 文字列の長さを計算する

例

import pandas as pd

# 異なる長さの文字列を含むSeriesを作成する
s = pd.Series(['hello', 'サンプル', 'python', 'ai', 'data'])

# str.len() を使用して各文字列の長さを計算する
result = s.str.len()

print("元のSeries:")
print(s)
print("n文字列の長さ:")
print(result)

出力結果:

原始 Series:
0      hello
1     サンプル
2     python
3        ai
4       data
dtype: object

字符串长度:
0    5
1    6
2    6
3    2
4    4

コードの解説:

  1. s.str.len()各文字列の文字数を計算します。
  2. 'hello' は5文字なので、5を返します。
  3. 'サンプル' は6文字なので、6を返します。
  4. 空文字列は長さ0を返します。

例2:空白を含む文字列の長さ

len()空白を含むすべての文字を計算します。

例

import pandas as pd

# 空白を含むSeriesを作成する
s = pd.Series(['hello world', 'サンプル python', 'a b c', '  space  '])

# 文字列の長さを計算する
result = s.str.len()

print("元のSeries:")
print(s)
print("n文字列の長さ(空白を含む):")
print(result)

出力結果:

原始 Series:
0     hello world
1   サンプル python
2           a b c
3          space
dtype: object

字符串长度(包括空格):
0    11
1    13
2          5
3          8

コードの解説:

  • 'hello world' は11文字です(中央の空白を含む)。
  • ' space ' は8文字です(前後にそれぞれ2つの空白を含む)。
  • 空白は文字として計算されます。

例3:特定の長さの文字列を抽出する

len()データを抽出するために、ブールインデックスと組み合わせてよく使用されます。

例

import pandas as pd

# 製品名のSeriesを作成する
products = pd.Series(['iPhone', 'Samsung Galaxy', 'MacBook Pro', 'iPad', 'Dell XPS'])

# 長さが8より大きい製品を抽出する
long_names = products[products.str.len() > 8]
# 長さが5以下の製品を抽出する
short_names = products[products.str.len() <= 5]

print("すべての製品:")
print(products)
print("n長さがより大きい8製品:")
print(long_names)
print("n長さが以下5の製品:")
print(short_names)

出力結果:

所有产品:
0            iPhone
1    Samsung Galaxy
2       MacBook Pro
3              iPad
4            Dell XPS
dtype: object

长度大于 8 的产品:
1    Samsung Galaxy
2       MacBook Pro
4        Dell XPS
dtype: object

长度小于等于 5 的产品:
0       iPhone
3         iPad
dtype: object

コードの解説:

  • products.str.len() > 8長さが8より大きいかを示すブールSeriesを返します。
  • ブールインデックスを使用して、条件を満たす製品名を抽出します。
  • これはデータ抽出の一般的な操作です。

例4:長さの分布を集計する

len()統計分析に使用できます。

例

import pandas as pd

# 文の長さを含むSeriesを作成する
sentences = pd.Series([
    'Hello',
    'Hello world',
    'Pandas is powerful',
    'Data science with machine learning',
    'AI'
])

# 各文の長さを計算する
lengths = sentences.str.len()

print("文のリスト:")
print(sentences)
print("n各文の文字長:")
print(lengths)
print("n統計情報:")
print(f"最短の長さ: {lengths.min()}")
print(f"最長の長さ: {lengths.max()}")
print(f"平均の長さ: {lengths.mean():.2f}")
print(f"合計の長さ: {lengths.sum()}")

出力結果:

句子列表:
0                            Hello
1                       Hello world
2                  Pandas is powerful
3    Data science with machine learning
4                             AI
dtype: object

每个句子的字符长度:
0      5
1     11
2     18
3     29
4      2
dtype: int64

统计信息:
最短长度: 2
最长长度: 29
平均长度: 13.00
总长度: 65

コードの解説:

  • lengths.min()最短の文字列の長さを返します。
  • lengths.max()最長の文字列の長さを返します。
  • lengths.mean()平均の長さを返します。
  • lengths.sum()合計文字数を返します。

例5:混合型データの処理

len()数値などの非文字列要素の文字列表現の長さも計算します。

例

import pandas as pd
import numpy as np

# 混合型を含むSeriesを作成する
s = pd.Series(['hello', 12345, 'サンプル', np.nan, 'py'])

# 長さを計算する
result = s.str.len()

print("元のSeries:")
print(s)
print("n文字列の長さ:")
print(result)

出力結果:

原始 Series:
0       hello
1       12345
2      サンプル
3        NaN
4         py
dtype: object

字符串长度:
0       5.0
1       5.0
2       6.0
3       NaN
4       2.0

コードの解説:

  • 数値12345は文字列'12345'に変換され、長さは5になります。
  • NaN値はNaNを返します(エラーにはなりません)。
  • NaNはfloat型のため、戻り値はfloat型になります。

例6:splitと組み合わせて単語数を計算する

組み合わせてlen()とsplit()単語数を計算することができます。

例

import pandas as pd

# 文を含むSeriesを作成する
sentences = pd.Series([
    'hello world',
    'サンプル python tutorial',
    'pandas data analysis',
    'machine learning'
])

# まず分割してから長さを計算し、単語数を取得する
word_counts = sentences.str.split().str.len()

print("文のリスト:")
print(sentences)
print("n単語数:")
print(word_counts)

出力結果:

句子列表:
0           hello world
1    サンプル python tutorial
2    pandas data analysis
3    machine learning
dtype: object

单词数量:
0    2
1    3
2    3
3    2
dtype: int64

コードの解説:

  • str.split()文を単語のリストに分割します。
  • .str.len()リストの長さ(つまり単語数)を計算します。
  • これはテキストの単語数を集計するときに非常に便利です。

注意事項

  • str.len()計算されるのは文字数であり、バイト数ではありません。
  • 中国語の文字の場合、各漢字は1文字として数えられます。
  • 空白、タブ文字などの特殊文字も計算に含まれます。
  • SeriesにNaN値が含まれる場合、NaNを返します(エラーにはなりません)。
  • 非文字列要素(数値など)の場合は、まず文字列に変換してから長さを計算します。
  • この関数は新しいSeriesを返し、元のデータは変更されません。

Pandas 常用函数Pandas よく使う関数

その他の拡張