2015-05-14 6 views
-1

У меня есть фрейм даты df, скажем, с 5 столбцами: a, b, c, d, e.Обработка повторяющихся строк в python

a b c d e 

    1 6 x 8 3 
    2 3 y 2 3 
    3 5 d 1 1 
    3 4 g 3 4 
    5 3 z 3 1 

Это то, что я хочу сделать, для всех строк с одинаковым значением столбца а, я хочу отказаться от дубликатов, но значение столбца б следует суммировать по этим строкам, так и для остальных столбцов , Я хочу сохранить первое значение.

Окончательный кадр данных будет:

a b c d e 

    1 6 x 8 3 
    2 3 y 2 3 
    3 9 d 1 1 
    5 3 z 3 1 

Как это сделать?

+1

Вы можете использовать в 'метода pandas.DataFrame.groupby' для сбора строк, соответствующих уникальным значениям в любом столбце, а затем использовать метод aggregate объекта groupby для их суммирования. Но это может плохо работать для столбца 'c', поскольку оно содержит строки. Возможно, вам придется обрабатывать это отдельно. –

ответ

0

Я бы присвоить колонок «Ъ» в результате группировки на «а» и суммировании, вы можете затем удалить дубликаты:

In [171]: 

df['b'] = df.groupby('a')['b'].transform('sum') 
df 
Out[171]: 
    a b c d e 
0 1 6 x 8 3 
1 2 3 y 2 3 
2 3 9 d 1 1 
3 3 9 g 3 4 
4 5 3 z 3 1 
In [172]: 

df.drop_duplicates('a') 
Out[172]: 
    a b c d e 
0 1 6 x 8 3 
1 2 3 y 2 3 
2 3 9 d 1 1 
4 5 3 z 3 1 
Смежные вопросы