У меня есть следующие dataframe (панды версия 0.13.1)получать все соответствующие максимальные значения в пандами сводной таблице
>>> import pandas as pd
>>> DF = pd.DataFrame({'Group':['G1','G1','G2','G2'],'Start':['10','10','12','13'],'End':['13','13','14','15'],'Sample':['S1','S2','S3','S3'],'Status':['yes','yes','no','yes'],'pValue':[0.13,0.12,0.96,0.76],'pValueString':['13/100','12/100','96/100','76/100'],'desc':['aaaaaa','bbbbbb','aaaaaa','cccccc']})
>>> DF
End Group Sample Start Status pValue pValueString desc
0 13 G1 S1 10 yes 0.13 13/100 aaaaaa
1 13 G1 S2 10 no 0.12 12/100 bbbbbb
2 14 G2 S3 12 no 0.96 96/100 aaaaaa
3 15 G2 S3 13 yes 0.76 76/100 cccccc
[4 строки х 8 столбцов]
К dataframe выше
- Я хотел бы groupby 'Group'.
- Затем группа с куратором начала.
- Поверните значения выборки для каждой группы. aggregate by max (pValue)
- Получите соответствующее состояние, desc, соответствующее образцу с более высоким значением pvalue, и замените его значением на pValueString.
Мне нужно в конечном итоге получить это в следующем формате
Group Start End Sample Status desc
S1 S2
G1 10 13 13/100 12/100 yes aaaaaa
S3
G2 12 14 96/100 no aaaaaa
13 15 76/100 yes cccccc
Я попытался использовать pivot_table и GroupBy, но безрезультатно. Любая помощь будет высоко оценена.
Я
grouped=DF.groupby('Group')
for g,v in grouped:
pandas.pivot_table(data=v,values=['pValue','pValueString']),rows= ['Group','Start','End'],cols=['Sample'])['pValueString']
Как получить соответствующий DESC и статус?
Просто интересно, можно ли напечатать столбец «уровень». Также можно было бы отсортировать каждое значение группы с помощью соответствующих значений Sample? – user2755526