Трансформация Pandas DataFrame
Коллеги, необходимо привести DataFrame к следующему виду:
Сейчас таблица имеет следующий вид:
df = pd.DataFrame({'Year': ['1999-01-31','2000-01-31','2001-01-31','2002-01-31','2003-01-31'],
'Value': ['13','10','12','14','16']})
Нужно отбросить число дня, число месяца можно так и оставить числом. Ранее задавал подобный вопрос тут:Преобразование DataFrame Сейчас возникла необходимость обратного преобразования.
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Ваш датасет непоказателен. я его немного расширил:
import pandas as pd
import calendar
df = pd.DataFrame({'Year': ['1999-01-31','2000-01-31','2001-01-31','2002-01-31','2003-01-31', '1999-02-31','2000-02-31','2001-02-31','2002-02-31','2003-02-31'],
'Value': ['13','10','12','14','16', '23','20','22','24','26']})
Дальше просто:
df[["Year", "Month"]] = df["Year"].str.split("-", n=1, expand=True)
res = df.pivot(index="Year", columns="Month", values="Value")
res.columns = [calendar.month_abbr[int(x.split("-")[0])] for x in res.columns]
res:
Jan Feb
Year
1999 13 23
2000 10 20
2001 12 22
2002 14 24
2003 16 26
