Pandas: 列全体の部分文字列を取得する方法
次の基本構文を使用して、pandas DataFrame の列全体の部分文字列を取得できます。
df[' some_substring '] = df[' string_column ']. str [1:4]
この特定の例では、 string_columnの位置 1 ~ 4 の文字を含むsome_substringという新しい列を作成します。
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas の列全体の部分文字列を取得する
さまざまなバスケットボール チームに関する情報を含む次のパンダ データフレームがあるとします。
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' team ': ['Mavericks', 'Warriors', 'Rockets', 'Hornets', 'Lakers'],
' points ': [120, 132, 108, 118, 106]})
#view DataFrame
print (df)
team points
0 Mavericks 120
1 Warriors 132
2 Rockets 108
3 Hornets 118
4 Lakers 106
次の構文を使用して、チーム列の 1 位から 4 位までの文字を含む新しい列を作成できます。
#create column that extracts characters in positions 1 through 4 in team column
df[' team_substring '] = df[' team ']. str [1:4]
#view updated DataFrame
print (df)
team points team_substring
0 Mavericks 120 ave
1 Warriors 132 arr
2 Rockets 108 ock
3 Hornets 118 orn
4 Lakers 106 ake
Team_substringという新しい列には、チーム列の位置 1 から 4 までの文字が含まれます。
この構文を使用して数値列から部分文字列を抽出しようとすると、エラーが発生することに注意してください。
#attempt to extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. str [:2]
AttributeError: Can only use .str accessor with string values!
代わりに、最初にastype(str)を使用して数値列を文字列に変換する必要があります。
#extract characters in positions 0 through 2 in points column
df[' points_substring '] = df[' points ']. astype (str). str [:2]
#view updated DataFrame
print (df)
team points points_substring
0 Mavericks 120 12
1 Warriors 132 13
2 Rockets 108 10
3 Hornets 118 11
4 Lakers 106 10
今回は、最初に文字列に変換したため、ドット列の位置 0 ~ 2 の文字を正常に抽出することができました。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
パンダ: 文字列に複数の部分文字列が含まれているかどうかを確認します
Pandas: 列の各値に文字列を追加する方法
パンダ: 特定の文字列を含む列を選択する方法