У меня есть датафрейм, содержит три столбца.Я хочу уменьшить размеры фрейма данных.
data = [[1, 876, 0.98],[1, 888, 0.58],[1, 976, 0.48],[1, 648, 0.98],[2, 765, 0.28], [2, 986, 0.28], [2, 765, 1.0], [2, 876, 0.45]]
sample = pd.DataFrame(data, columns=['col1','col2', 'col3'])
col1 col2 col3
0 1 876 0.98
1 1 888 0.58
2 1 976 0.48
3 1 648 0.98
4 2 765 0.28
5 2 986 0.28
6 2 765 1.00
7 2 876 0.45
Я хочу указать ниже желаемый результат на основе условия: 1. Для каждого значения в столбце col1 должна быть одна строка, а в столбце 4 должен быть списоккортежи (col2, col3) 2. col4 должен иметь только два верхних кортежа на основе значений в col3.Например, в примере кадра данных в col2 765 происходило два раза, конечный кадр данных должен принимать тот, который имеет наибольшее значение в столбце col3 и второй по величине
data = [[1, [(876, 0.98),(648, 0.98)]],[2, [(876, 0.45), (765, 1.0)]]]
desired_output = pd.DataFrame(data, columns=['col1', 'col2'])
col1 col4
0 1 [(876, 0.98), (648, 0.98)]
1 2 [(876, 0.45), (765, 1.0)]
Я хочу сохранить в списке кортеж, чтобыЯ могу использовать это для каких-то других целей. Это только часть решения более крупной проблемы.