Как соединить по колонкам?
Есть данные следующего формата:
col_1, col_2, data
1, 1, data_1
1, 2, data_2
1, 3, data_3
1, 4, data_4
2, 1, data_1
2, 2, data_2
2, 3, data_3
2, 4, data_4
2, 5, data_5
Каким образом преобразовать к следующему виду:
index_col_1, index_col_2_1, index_col_2_2, index_col_2_3, index_col_2_4, index_col_2_5
1, data_1, data_2, data_3, data_4, null
2, data_1, data_2, data_3, data_4, data_5
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
можно воспользоваться методом DataFrame.pivot_table():
res = (df
.assign(x="index_col_2_" + df["col_2"].astype(str))
.pivot_table(index="col_1", columns="x", values="data", aggfunc="first")
.reset_index())
результат:
In [343]: res
Out[343]:
x col_1 index_col_2_1 index_col_2_2 index_col_2_3 index_col_2_4 index_col_2_5
0 1 data_1 data_2 data_3 data_4 NaN
1 2 data_1 data_2 data_3 data_4 data_5