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: 列の各値に文字列を追加する方法
パンダ: 特定の文字列を含む列を選択する方法

コメントを追加する

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