2017-06-06 71 views
1

如何總結每個州的「數字」列中的值,然後從「數字」旁邊的值中創建一個新列?如何彙總兩列中的值並從中創建一個新列?

到目前爲止,我有這個彙總:

out_state_total['df']=df.groupby('State')['out-of-state'].sum(axis=1) 

但出於某種原因,我不能根據這些值創建一個新列...

example state in-state out-of-state final_state 
red  NJ  3000  99   AL 
blue  ND  43  500   AK 
green NY  8000  10   AZ 
gray  NJ  94  20   AR 
orange DE  32  7 

回答

1

使用變換

df[['in_state_total','out_state_total']]=df.groupby('state')['in-state', 'out-of-state'].transform('sum') 


    example state in-state out-of-state in_state_total out_state_total 
0 red  NJ  3000  99    3094   119 
1 blue ND  43   500    43    500 
2 green NY  8000  10    8000   10 
3 gray NJ  94   20    3094   119 
4 orange DE  32   7    32    7 

+0

嗯,它說Attribut eError:'DataFrameGroupBy'對象沒有'number'屬性 – dancemc15

+0

我寫到:in_state_total = df.groupby('State')['in-state']。sum()then this:df ['in_state_total'] = df。 groupby('State')。number.transform(「sum」) – dancemc15

+0

您使用的列名和我在發佈的df中看到的列名是不同的。你不需要groupby.sum,你可以直接使用變換 – Vaishali

相關問題