パンダ: 文字列で始まらない行を選択する方法
次の基本構文を使用して、pandas DataFrame 内の特定の文字列で始まらない行を選択できます。
df[~df. my_column . str . startswith ((' this ', ' that '))]
この特定の式は、 my_columnという列が文字列thisまたは文字列thatで始まらない DataFrame 内のすべての行を選択します。
次の例は、この構文を実際に使用する方法を示しています。
例: Pandas で文字列で始まらない行を選択する
さまざまな店舗の販売情報を含む次のパンダ データフレームがあるとします。
import pandas as pd #createDataFrame df = pd. DataFrame ({' store ': ['Upper East', 'Upper West', 'Lower East', 'West', 'CTR'], ' sales ': [150, 224, 250, 198, 177]}) #view DataFrame print (df) blind sales 0 Upper East 150 1 Upper West 224 2 Lower East 250 3 West 198 4 CTR 177
次の構文を使用して、ストア列の「上位」または「下位」文字列で始まらないデータフレーム内のすべての行を選択できます。
#select all rows where store does not start with 'Upper' or 'Lower'
df[~df. blind . str . startswith ((' Upper ',' Lower '))]
blind sales
3 West 198
4 CTR 177
返される行は、ストア列が「Upper」または「Lower」で始まらない行のみであることに注意してください。
必要に応じて、 startupswith()関数の外側で文字列タプルを定義することもできます。
#define tuple of strings
some_strings = (' Upper ', ' Lower ')
#select all rows where store does not start with strings in tuple
df[~df. blind . str . startswith (some_strings)]
blind sales
3 West 198
4 CTR 177
これにより、前の方法と同じ結果が得られます。
注: pandas のstartwith関数の完全なドキュメントはここで見つけることができます。
追加リソース
次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。
Pandas: 文字列の長さに基づいて行をフィルタリングする方法
パンダ: 列に文字列が含まれているかどうかを確認する方法
パンダ: GroupBy を使用して文字列を連結する方法