ホームページ > バックエンド開発 > Python チュートリアル > Pandas DataFrame の各クラスター内の組織ごとの平均時間を計算するにはどうすればよいですか?

Pandas DataFrame の各クラスター内の組織ごとの平均時間を計算するにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-14 20:49:02
オリジナル
363 人が閲覧しました

How to Calculate the Average Time per Organization Within Each Cluster in a Pandas DataFrame?

グループ化された集計と平均計算の実行

クラスター、組織、および時間に関するデータを含む次のデータフレームを考えてみましょう。

  cluster org  time
0       a    8
1       a    6
2       h   34
3       c   23
4       d   74
5       w    6
ログイン後にコピー

目的は、各クラスター内の組織ごとの平均時間を計算することです。期待される結果は次のようになります。

cluster  mean(time)
1        15 #=((8 + 6) / 2 + 23) / 2
2        54 #=(74 + 34) / 2
3        6
ログイン後にコピー

Double GroupBy と平均計算を使用した解決策:

これを実現するには、Pandas の groupby 関数を利用します。

  1. Initial GroupBy: 両方でデータをグループ化します。 groupby(['cluster', 'org']) を使用した 'cluster' と 'org'。
  2. 中間集計:mean() を使用して各グループ内の時間の平均を計算します。
  3. Secondary GroupBy: 結果の DataFrame をさらにグループ化します。 groupby('cluster') を使用した 'cluster'。
  4. 最終集計: means() を使用して各クラスターの時間の平均を計算します。
cluster_org_time = df.groupby(['cluster', 'org'], as_index=False).mean()
result = cluster_org_time.groupby('cluster')['time'].mean()
ログイン後にコピー

クラスタ化されたグループの代替ソリューション平均:

クラスター グループの平均の場合のみ、['cluster'] でグループ化し、me​​an() を使用して平均を計算します。

cluster_mean_time = df.groupby(['cluster']).mean()
ログイン後にコピー

追加オプションorg と平均計算を使用した GroupBy の場合:

または、グループ化することもできます。 ['cluster', 'org'] 平均を直接計算します:

cluster_org_mean_time = df.groupby(['cluster', 'org']).mean()
ログイン後にコピー

以上がPandas DataFrame の各クラスター内の組織ごとの平均時間を計算するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート