パンダ: 文字列で始まらない行を選択する方法


次の基本構文を使用して、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 を使用して文字列を連結する方法

コメントを追加する

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