2017-09-30 96 views
1
node1 node2 weight 

2   6  1 

2   7  1 

2   7  1 

2   8  1 

2   15  1 

2   15  1 

2   15  1 

2   15  1 

從上面我要合併的行,其中節點1 ==節點2隨時隨地滿足此條件時更新重量可以看出,這樣只有一個行與唯一的節點1和節點2,權重是否等於條件的發生。合併行同時更新大熊貓另一列

示例輸出:

node 1  node 2  weight 

    2   7    2 

    2   15    4 

等。

+0

請添加文本version.We不要想要圖像 – Dark

+2

使用'df.groupby(['node1','node2'])['weight']。sum()' – Zero

回答

2

如果你有數據幀像

 
    node1 node2 weight 
0  2  6  1 
1  2  7  1 
2  2  7  1 
3  2  8  1 
4  2  15  1 
5  2  15  1 
6  2  15  1 
7  2  15  1 

選項1: GROUPBY總和與總比分FUNC作爲總和

df.groupby(['node1','node2']).sum().reset_index() 
 
    node1 node2 weight 
0  2  6  1 
1  2  7  2 
2  2  8  1 
3  2  15  4 

選項2透視表

df.pivot_table(index=['node1','node2'],aggfunc=sum).reset_index() 
 
    node1 node2 weight 
0  2  6  1 
1  2  7  2 
2  2  8  1 
3  2  15  4 

如果你想組次數多一次,然後使用過濾器第一則GROUPBY總和即

ndf = df.groupby(['node1','node2']).filter(lambda x : len(x) > 1) 
ndf = ndf.groupby(['node1','node2']).sum().reset_index() 
 
    node1 node2 weight 
0  2  7  2 
1  2  15  4 

或者

ndf = df.groupby(['node1','node2']).sum().reset_index() 
ndf[ndf['weight'].ne(1)]