2017-01-02 36 views
1

我有一个数据帧i需要总结g的值并丢弃所述复制的像这样 INT:总和值降的重复那些

a b  c d e f g 
6 2011 1 1 0 0 0 
6 2011 1 1 0 0 0 
6 2011 1 1 0 0 7 
6 2011 1 1 0 0 2 
6 2011 1 1 0 0 0 
7 2012 1 1 0 0 5 
7 2012 1 1 0 0 8 

我知道,对于降行我们可以使用df.drop_duplicates(),但我不知道我怎么能和引出线 出来:

a b  c d e f g 

6 2011 1 1 0 0 9 
7 2012 1 1 0 0 13 

回答

3

你可以在其他列总和组:

df.groupby(list('abcdef'), as_index=False)['g'].sum() 
Out: 
    a  b c d e f g 
0 6 2011 1 1 0 0 9 
1 7 2012 1 1 0 0 13 

list('abcdef')是一种简短的写作方式['a', 'b', 'c', 'd', 'e', 'f']

如果您不想指定的所有列名,你可以使用Index.difference

df.groupby(df.columns.difference(['g']).tolist(), as_index=False).sum() 
Out: 
    a  b c d e f g 
0 6 2011 1 1 0 0 9 
1 7 2012 1 1 0 0 13