У меня есть pandas df с дублирующимися индексами и одним столбцом:
value
1 0.996957
1 1.098198
1 1.184518
2 1.255916
2 1.312393
Что я хочу сделать, это получить df с уникальными индексами и различными значениями, которые каждый индекс принимает в качестве столбцов,Последний столбец df будет зависеть от индекса, который появляется чаще всего.
Так что для этого примера я бы хотел:
1 2 3
1 0.996957 1.098198 1.184518
2 1.255916 1.312393 NaN
Что я сделал до сих порработает, но, безусловно, может быть улучшена группировка по индексу и каким-то образом построение нового df через группы:
data = pd.DataFrame(columns=np.arange(df.groupby(df.index)\
.count().value.max()))
for i in np.unique(df.index.values):
data_points_i = pd.DataFrame(df.loc[i,:].value.values).transpose()
data = pd.concat([data,data_points_i], axis = 0)
data.index = df.index.unique()
Где df - это исходный df и данные, которые я получаю в итоге.Любая помощь по оптимизации этого кода будет принята с благодарностью.