ホームページ >バックエンド開発 >Python チュートリアル >Pandas でデータ集約を実行するにはどうすればよいですか?

Pandas でデータ集約を実行するにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-12-18 06:11:11451ブラウズ

How to Perform Data Aggregation with Pandas?

Pandas での集計

Pandas を使用すると、さまざまな集計操作を実行して、次元を削減し、データを要約できます。

質問 1: どうすればよいですか? Pandas で集計を実行しますか?

Pandas は多くの機能を提供します集計関数 (mean()、sum()、count()、min()、max() など)。これらの関数を使用して、各グループの概要統計を計算できます。例:

# Calculate mean of each group based on 'A' and 'B' columns
df1 = df.groupby(['A', 'B']).mean()

# Print the results
print(df1)

質問 2: 集約後にデータフレームがありません。何が起こったのでしょうか?

複数の列に集計を適用すると、グループ化された列の数に応じて、結果のオブジェクトは Series または DataFrame になります。

  • Series: 1 つ以上の列でグループ化すると、結果は、対応するインデックスを持つシリーズになります。 groups.
  • DataFrame: 1 つの列だけでグループ化すると、結果は元の列に対応する列を含む DataFrame になります。

DataFrame を取得するにはすべての列については、groupby 関数で as_index=False を使用します。

質問 3: 主に文字列列を集計するにはどうすればよいですか? (リスト、タプル、区切り文字付き文字列)?

文字列列を集計するには、リスト、タプル、または結合操作を使用できます。

  • List: list() を使用して列をリストに変換するか、 GroupBy.apply(list).
  • Tuple: tuple() または GroupBy.apply(tuple).
  • String を使用して列をタプルに変換します。 separator: を使用して文字列と区切り文字を結合します。 str.join().

例:

# Convert 'B' column values to a list for each group
df1 = df.groupby('A')['B'].agg(list).reset_index()

# Combine 'B' column values into a string with separator for each group
df2 = df.groupby('A')['B'].agg(','.join).reset_index()

質問 4: カウントを集計するにはどうすればよいですか?

それぞれの非欠損値をカウントするにはグループの場合は、GroupBy.count() を使用します。欠損値を含むすべての値をカウントするには、GroupBy.size() を使用します。

例:

# Count non-missing values in 'C' column for each group
df1 = df.groupby('A')['C'].count().reset_index(name='COUNT')

# Count all values in 'A' column for each group
df2 = df.groupby('A').size().reset_index(name='COUNT')

質問 5: 集計値で満たされる新しい列を作成するにはどうすればよいですか?

transform() メソッドを使用して、集計値を含む新しい列を追加できます。 transform() 関数は、指定された操作を各グループに適用し、元のオブジェクトと同じサイズの新しいオブジェクトを返します。

例:

# Create a new 'C1' column with the sum of 'C' grouped by 'A'
df['C1'] = df.groupby('A')['C'].transform('sum')

以上がPandas でデータ集約を実行するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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