パンダ: 同じ列値を持つ行を結合する方法


次の基本構文を使用して、pandas DataFrame で同じ列値を持つ行を結合できます。

 #define how to aggregate various fields
agg_functions = {' field1 ': ' first ', ' field2 ': ' sum ', ' field ': ' sum '}

#create new DataFrame by combining rows with same id values
df_new = df. groupby (df[' id ']). aggregate (agg_functions)

次の例は、この構文を実際に使用する方法を示しています。

例: Pandas で同じ列値を持つ行を結合する

会社のさまざまな従業員による売上と返品に関する情報を含む次のパンダ データフレームがあるとします。

 import pandas as pd

#create dataFrame
df = pd. DataFrame ({' id ': [101, 101, 102, 103, 103, 103],
                   ' employee ': ['Dan', 'Dan', 'Rick', 'Ken', 'Ken', 'Ken'],
                   ' sales ': [4, 1, 3, 2, 5, 3],
                   ' returns ': [1, 2, 2, 1, 3, 2]})

#view DataFrame
print (df)

    id employee sales returns
0 101 Dan 4 1
1 101 Dan 1 2
2 102 Rick 3 2
3 103 Ken 2 1
4 103 Ken 5 3
5 103 Ken 3 2

次の構文を使用して、 id列に同じ値を持つ行を結合し、残りの列を集計できます。

 #define how to aggregate various fields
agg_functions = {' employee ': ' first ', ' sales ': ' sum ', ' returns ': ' sum '}

#create new DataFrame by combining rows with same id values
df_new = df. groupby (df[' id ']). aggregate (agg_functions)

#view new DataFrame
print (df_new)

    employee sales returns
id                          
101 Dan 5 3
102 Rick 3 2
103 Ken 10 6

新しい DataFrame は、 id列に同じ値を持つ以前の DataFrame のすべての行を結合し、 sales列とreturns列の値の合計を計算しました。

: GroupBy()関数で使用できる集計の完全なリストについては、 pandas のドキュメントを参照してください。

追加リソース

次のチュートリアルでは、パンダで他の一般的なタスクを実行する方法を説明します。

パンダ: 2 つの列の違いを見つける方法
パンダ: 2 つの線の違いを見つける方法
パンダ: 列を名前で並べ替える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です