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 のすべての列で文字列を検索します。