У меня есть дата-карта с продуктом в качестве первого столбца, а затем 12 месяцев продаж (одна колонка в месяц). Я хотел бы «развернуть» dataframe, чтобы получить сингл.Pandas dataframe: несколько столбцов Time/Date для одного индекса даты
пример данных:
import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randint(10, 1000, size=(2,12)), index=['PrinterBlue', 'PrinterBetter'], columns=pd.date_range('1-1', periods=12, freq='M'))
Выход:
>>> df
2014-01-31 2014-02-28 2014-03-31 2014-04-30 2014-05-31 \
PrinterBlue 176 77 89 279 81
PrinterBetter 801 660 349 608 322
2014-06-30 2014-07-31 2014-08-31 2014-09-30 2014-10-31 \
PrinterBlue 286 831 114 996 904
PrinterBetter 994 374 895 586 646
2014-11-30 2014-12-31
PrinterBlue 458 117
PrinterBetter 366 196
Желаемый результат:
Brand Date Sales
PrinterBlue 2014-01-31 176
2014-02-28 77
2014-03-31 89
[...]
2014-11-30 458
2014-12-31 117
PrinterBetter 2014-01-31 801
2014-02-28 660
2014-03-31 349
[...]
2014-11-30 366
2014-12-31 196
Я могу представить себе получение результата с помощью:
- Строительство 12 суб dataframe, каждый из которых содержит только один месяц информации
- поворачивающимися каждый dataframe
- конкатенации их
Но это, кажется, как довольно сложный способ сделать целевое преобразование. Есть ли лучший/более простой способ?
завод любит шарм, спасибо большое! – knightofni