突然想到

pandas DataFrame 如何使用 SQL的多欄位 group by 找出不同的組合並且合計?

 

import pandas as pd

data = {
    'A': ['X', 'X', 'Y', 'Y', 'Z'],
    'B': ['a', 'a', 'a', 'b', 'a'],
    'C': [10, 20, 30, 40, 50],
    'D': [1, 2, 3, 4, 5],
    'E': ['V', 'V', 'V', 'V', 'B'],
}

df = pd.DataFrame(data)
grouped = df.groupby(['A', 'B']).sum().reset_index()
print(grouped)

輸出會是

 

 

import pandas as pd
   A  B   C  D   E
0  X  a  30  3  VV
1  Y  a  30  3   V
2  Y  b  40  4   V
3  Z  a  50  5   B

 

連字串都加在一起了

但是我只想要ABC欄位做 group 應該怎麼做呢?

先把ABC取出來就可以囉

例如以下這樣

 

import pandas as pd

data = {
    'A': ['X', 'X', 'Y', 'Y', 'Z'],
    'B': ['a', 'a', 'a', 'b', 'a'],
    'C': [10, 20, 30, 40, 50],
    'D': [1, 2, 3, 4, 5],
    'E': ['V', 'V', 'V', 'V', 'B'],
}

df = pd.DataFrame(data)
grouped = df[['A', 'B', 'C']].groupby(['A', 'B']).sum().reset_index()
print(grouped)

 

給大家參考囉