1

複数の列を持つ DataFrame オブジェクトがあります: business_idcategoriestype_of_business...

元の DataFrame オブジェクトの列インデックスのみbusiness_idを使用して、より小さな DataFrame を作成することができました。categories

categories特定の文字列のリストです。例: ['Restaurant, 'food', 'bakery']- for each business_id.

カテゴリの 1 つですRestaurantsRestaurants単語がカテゴリ リストにあるビジネス ID のみを取得するにはどうすればよいですか。

擬似コード:

for row in smaller_DataFrame:
    if 'Restaurants' in row['categories']:
        add this business_id to some dictionary.

if条件を DataFrame オブジェクトに組み込む方法に興味があります。

前もって感謝します。

4

2 に答える 2

4

ブール条件に従って行を選択することは、ドキュメントではマスキングと呼ばれます。

df[df['categories'].isin(['Restaurant', 'food', 'bakery'])]

余談ですが、あなたは反対票を投じられているようです。DataFrame のいくつかのサンプル行と、目的の結果の例を含めることをお勧めします。

大文字と小文字を区別しないようにするには、 の.str.lowercase()前に貼り.isin付け、カテゴリのリストをすべて小文字にします。

于 2013-09-13T15:43:27.953 に答える
2

マップでそれを行うことができます:

df[df.categories.map(lambda cats: 'Restaurants' in cats)]
于 2013-09-13T15:43:16.943 に答える