с несколькими индексами сглаживания (PS: вы можете добавить fillna (0) в конце, я не добавил его, потому что я не думаю, что для зоны значение 0 является правильным)
я есть такой фрейм данных, и я пытаюсь изменить форму своего фрейма данных с помощью Pivot из Pandas таким образом, чтобы я мог сохранить некоторые значения из исходных строк, превращая строки дубликатов в столбцы и переименовывая их. Иногда у меня есть строки с 5 дубликатов
Я пытался, но я не понимаю.
import pandas as pd
df = pd.read_csv("C:dummy")
df = df.pivot(index=["ID"], columns=["Zone","PTC"], values=["Zone","PTC"])
# Rename columns and reset the index.
df.columns = [["PTC{}","Zone{}"],.format(c) for c in df.columns]
df.reset_index(inplace=True)
# Drop duplicates
df.drop(["PTC","Zone"], axis=1, inplace=True)
вход
ID Agent OV Zone Value PTC
1 10 26 M1 10 100
2 26.5 8 M2 50 95
2 26.5 8 M1 6 5
3 4.5 6 M3 4 40
3 4.5 6 M4 6 60
4 1.2 0.8 M1 8 100
5 2 0.4 M1 6 10
5 2 0.4 M2 41 86
5 2 0.4 M4 2 4
Выход
ID Agent OV Zone1 Value1 PTC1 Zone2 Value2 PTC2 Zone3 Value3 PTC3
1 10 26 M_1 10 100 0 0 0 0 0 0
2 26.5 8 M_2 50 95 M_1 6 5 0 0 0
3 4.5 6 M_3 4 40 M_4 6 60 0 0 0
4 1.2 0.8 M_1 8 100 0 0 0 0 0 0
5 2 0.4 M_1 6 10 M_2 41 86 M_4 2 4