Pandasで文字列から数値を抽出する方法


次の基本構文を使用して、pandas の文字列から数値を抽出できます。

 df[' my_column ']. str . extract (' (\d+) ')

この特定の構文は、各文字列から数値を抽出して、pandas DataFrame のmy_columnという列に入れます。

: 正規表現を使用する場合、 \d は「任意の数字」を表し、 + は「1 つ以上」を意味します。

次の例は、この関数を実際に使用する方法を示しています。

例: Pandas の文字列から数値を抽出する

さまざまな製品の販売に関する情報を含む次のパンダ データフレームがあるとします。

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' product ': ['A33', 'B34', 'A22', 'A50', 'C200', 'D7', 'A9', 'A13'],
                   ' sales ': [18, 22, 19, 14, 14, 11, 20, 28]})

#view DataFrame
print (df)

  product sales
0 A33 18
1 B34 22
2 A22 19
3 A50 14
4 C200 14
5 D7 11
6 A9 20
7 A13 28

製品列から各文字列の番号を抽出するとします。

これを行うには、次の構文を使用できます。

 #extract numbers from strings in 'product' column
df[' product ']. str . extract (' (\d+) ')

	0
0 33
1 34
2 22
3 50
4,200
5 7
6 9
7 13

結果は、 Product列の各行の数値のみを含む DataFrame になります。

例えば:

  • この式は、1 行目の文字列A33から33を抽出します。
  • この式は、最初の行の文字列B34から34を抽出します。
  • この式は、最初の行の文字列A22から22を抽出します。

等々。

必要に応じて、これらの数値を DataFrame の新しい列に保存することもできます。

 #extract numbers from strings in 'product' column and store them in new column
df[' product_numbers '] = df[' product ']. str . extract (' (\d+) ')

#view updated DataFrame
print (df)

  product sales product_numbers
0 A33 18 33
1 B34 22 34
2 A22 19 22
3 A50 14 50
4 C200 14,200
5 D7 11 7
6 A9 20 9
7 A13 28 13

product_numbersという新しい列には、 product列の各文字列の数値のみが含まれます。

追加リソース

次のチュートリアルでは、パンダで他の一般的な操作を実行する方法を説明します。

Pandas: 文字列列に基づいて DataFrame を並べ替える方法
パンダ: 文字列から特定の文字を削除する方法
パンダ: DataFrame のすべての列で文字列を検索します。

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です