У меня есть многоколонный фрейм данных, который содержит несколько одинаковых числовых значений. Это выглядит следующим образом:
A B C D
0 1 1 10 1
1 1 1 20 2
2 1 5 30 3
3 2 2 40 4
4 2 3 50 5
Это здорово, однако мне нужно сделать A индексом, а B столбцом. Проблема заключается в том, что столбец агрегируется и усредняется для каждого идентичного значения B.
df = DataFrame({'A':[1,1,1,2,2],
'B':[1,1,5,2,3],
'C':[10,20,30,40,50],
'D':[1,2,3,4,5]})
transposed_df = df.pivot_table(index=['A'], columns=['B'])
Вместо того, чтобы держать 10 и 20 по B1, оно в среднем составляет от двух до 15.
C D
B 1 2 3 5 1 2 3 5
A
1 15.0 NaN NaN 30.0 1.5 NaN NaN 3.0
2 NaN 40.0 50.0 NaN NaN 4.0 5.0 NaN
Можно ли как-нибудь сохранить столбец B одинаковым и отображать каждое значение C и D с помощью панд, или мне лучше написать свою собственную функцию для этого? Кроме того, очень важно, чтобы индекс и столбец оставались неизменными, поскольку может существовать только один из каждого числа.
РЕДАКТИРОВАТЬ: Это желаемый выход. Я понимаю, что этот точный макет, вероятно, невозможен, но он показывает, что 10 и 20 должны быть в столбце 1 и в индексе 1.
C D
B 1 2 3 5 1 2 3 5
A
1 10.0,20.0 NaN NaN 30.0 1.0,2.0 NaN NaN 3.0
2 NaN 40.0 50.0 NaN NaN 4.0 5.0 NaN