изменение формы pandas кадра данных от m строк n столбцов до mxn строк с одним столбцом значений - PullRequest
0 голосов
/ 05 апреля 2020

изменить форму фрейма данных из строк am xn столбцов в один столбец amxn строк.

Year   Jan   Feb   Mar   Apr   May   Jun   Jul   Aug   Sep   Oct   Nov  Dec
2000  12.7  13.8  13.3  12.6  12.8  12.3  13.4    14    13  12.8    13 13.2
2001  13.8  13.7  13.8  13.9  13.4  14.2  14.4    15.6  15.2    16  15.9    17
2002  16.5    16  16.6  16.7  16.6  16.7  16.8    17    16.3  15.1  17.1  16.9

до

Year Month Value
2000 Jan   12.7
2000 Feb   13.8
2000 Mar   13.3

, а затем легко объединить столбцы 'Year' + 'Month' в поле даты и график столбца данных.

Я чертовски ржав на этом. Чтение различных опций плавления, изменения формы, стека разочаровывающе медленно.

Ответы [ 2 ]

1 голос
/ 05 апреля 2020

Вы можете использовать melt для кадра данных pandas, например:

df = pd.melt(df, id_vars=['Year'])

Все остальные имена столбцов, которые не указаны в id_vars, будут объединены для вас в один столбец

0 голосов
/ 05 апреля 2020

Как уже упоминалось, melt будет работать, если в вашем кадре данных указан столбец Year. Если год является вашим индексом (трудно сказать, хотя, вероятно, он основан на ваших измерениях), вы можете использовать stack и reset_index.

to_datetime может объединить два столбца для создания даты и времени, но сначала вам нужно будет присвоить значение дня:

df.columns.name = 'Month'
df = df.stack().reset_index()
df['Date'] = pd.to_datetime(df[['Year', 'Month']].assign(Day=1))

Новый столбец даты можно использовать для построения графика с пакетом, который вы предпочитаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...