2017-08-07 9 views
0

は一例です:複数の列に基づいて2つの行を1つに結合するにはどうすればよいですか?ここ

Column A Column B Column C 
    A_1  B_1  0 
    A_1  B_1  1 
    A_1  B_2  2 
    A_1  B_2  3 

私が取得したいと思います:

Column A Column B Column C 
    A_1  B_1  1 
    A_1  B_2  5 

私はdf.groupby(["Column A", "Column B"])["Column C"].sum()をやってみましたが、私は、インデックスが列Column C(Column A, Column B)に基づいておりSeriesオブジェクトで返されています数字は合計ではなく連結されていました。

答えて

2

df.groupbyを呼び出す場合は、Indexに変換されないようにas_index=Falseと指定します。あなたはグループバイの後にdf.aggを使うことができます。

In [990]: df.groupby(["Column A", "Column B"], as_index=False).agg('sum') 
Out[990]: 
    Column A Column B Column C 
0  A_1  B_1   1 
1  A_1  B_2   5 
+0

ありがとうございます!私は自分のデータファイルを読むときに間違いを犯しました。最初に列Cを数値型に変更する必要があります。だからこそ私はあなたのコードと私の両方のための合計ではなく、文字列の連結を得ています。私は '.sum()'を使って実現したこともまったく同じ答えです。 –

+0

@StanleyGan MultiIndexが好きな人にとっては、あなたのソリューションは問題ありません。そうでなければ、私はこれをお勧めします。乾杯。 –

関連する問題