グループ化された DataFrame での用語のカウント: Pandas ソリューション
この記事では、グループ内の用語をカウントし、その結果を DataFrame に要約するという課題について説明します。 。 Pandas を使用すると、非効率的なループに頼ることなく、このタスクをエレガントに解決できます。次の DataFrame について考えてみましょう:
df = pd.DataFrame([ (1, 1, 'term1'), (1, 2, 'term2'), (1, 1, 'term1'), (1, 1, 'term2'), (2, 2, 'term3'), (2, 3, 'term1'), (2, 2, 'term1') ])
目的は、「id」と「group」でグループ化し、各「term」の出現数をカウントすることです。これを実現するために、Pandas は簡潔なソリューションを提供します。
df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
この操作は、DataFrame を 'id'、'group'、および 'term' 列でグループ化し、それぞれの一意の組み合わせの出現をカウントし、マルチインデックス列と、カウントを含む「size」という名前の単一値列を含む要約データフレーム。 「unstack」関数は、以下に示すように、DataFrame をワイド形式に再形成し、一意の用語ごとに 1 つの列を含めます。
id group term size 1 1 term1 3 1 term2 2 2 term3 1 2 2 term1 3
タイミング分析
大きい場合データセットを使用するには、このソリューションのパフォーマンス特性を理解することが重要です。これを評価するには、次のコードを使用して生成された 100 万行の DataFrame を検討します:
df = pd.DataFrame(dict(id=np.random.choice(100, 1000000), group=np.random.choice(20, 1000000), term=np.random.choice(10, 1000000)))
グループ化およびカウント操作をプロファイリングすると、大規模なデータセットでも効率的に処理できることがわかります:
df.groupby(['id', 'group', 'term']).size().unstack(fill_value=0)
このパフォーマンスは、Pandas の基礎となるグループ化および集約メカニズムの最適化された性質に起因しており、Pandas は大規模な処理を効率的に行うための優れたツールとなっています。データセット。
以上がパンダはどのようにしてグループ化されたデータフレーム内の用語を効率的にカウントできるのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。