ホームページ バックエンド開発 Python チュートリアル パンダはどのようにしてグループ化されたデータフレーム内の用語を効率的にカウントできるのでしょうか?

パンダはどのようにしてグループ化されたデータフレーム内の用語を効率的にカウントできるのでしょうか?

Nov 28, 2024 am 02:36 AM

How Can Pandas Efficiently Count Terms within Grouped DataFrames?

グループ化された 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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

HTMLを解析するために美しいスープを使用するにはどうすればよいですか? HTMLを解析するために美しいスープを使用するにはどうすればよいですか? Mar 10, 2025 pm 06:54 PM

HTMLを解析するために美しいスープを使用するにはどうすればよいですか?

Pythonでの画像フィルタリング Pythonでの画像フィルタリング Mar 03, 2025 am 09:44 AM

Pythonでの画像フィルタリング

Pythonでファイルをダウンロードする方法 Pythonでファイルをダウンロードする方法 Mar 01, 2025 am 10:03 AM

Pythonでファイルをダウンロードする方法

Pythonを使用してテキストファイルのZIPF配布を見つける方法 Pythonを使用してテキストファイルのZIPF配布を見つける方法 Mar 05, 2025 am 09:58 AM

Pythonを使用してテキストファイルのZIPF配布を見つける方法

Pythonを使用してPDFドキュメントの操作方法 Pythonを使用してPDFドキュメントの操作方法 Mar 02, 2025 am 09:54 AM

Pythonを使用してPDFドキュメントの操作方法

DjangoアプリケーションでRedisを使用してキャッシュする方法 DjangoアプリケーションでRedisを使用してキャッシュする方法 Mar 02, 2025 am 10:10 AM

DjangoアプリケーションでRedisを使用してキャッシュする方法

TensorflowまたはPytorchで深い学習を実行する方法は? TensorflowまたはPytorchで深い学習を実行する方法は? Mar 10, 2025 pm 06:52 PM

TensorflowまたはPytorchで深い学習を実行する方法は?

Natural Language Toolkit(NLTK)の紹介 Natural Language Toolkit(NLTK)の紹介 Mar 01, 2025 am 10:05 AM

Natural Language Toolkit(NLTK)の紹介

See all articles