Панды новый столбец при условии - PullRequest
0 голосов
/ 02 ноября 2018

у меня есть такой фрейм данных:

 Name    one two 
 John     A   20
 John     P   30
 Alex     B   40
 David    C   50
 Harry    A   60
 Harry    P   40

Я хочу добавить те строки, где A и P одновременно встречаются для определенных имен, таких как

 Name  one  two 
 John  A+P 50 
 Alex  B   40  
 David C   50  
 Harry A+P 100   

Я попытался использовать функцию sum для строки в pandas, но не получил вывод, так как в такой форме необходимо. Пожалуйста, помогите мне!

1 Ответ

0 голосов
/ 02 ноября 2018

Используйте DataFrameGroupBy.agg с join и sum:

df = df.groupby('Name', sort=False, as_index=False).agg({'one':'+'.join, 'two':'sum'})
print (df)
    Name  one  two
0   John  A+P   50
1   Alex    B   40
2  David    C   50
3  Harry  A+P  100
...