Контекст и исследования
В настоящее время я экспериментирую с pivot_table из библиотеки панд и ищу способ составить таблицу каким-то определенным образом.
Идея состоит в том, чтобы отобразить таблицу со значениями в строках в соответствии с индексом, а в столбцах - с другой переменной.
После просмотра нескольких ответов на сайте , связанных с группировкой в pandas.pivot_table, однако я не нашел такого, который мог бы решить эту проблему пока что.
Код и пример
Поскольку показывать лучше, чем рассказывать, я предоставляю вам небольшой фрагмент кода, чтобы показать, что мне удалось сделать.
import pandas as pd
df = pd.DataFrame(
{
"Year": [2018, 2018, 2018, 2018, 2018, 2018, 2018, 2019, 2019, 2019, 2019, 2019, 2019, 2019],
"Month": [4, 5, 6 , 7, 8, 9, 10, 4, 5, 6 , 7, 8, 9, 10],
"Apples": [3, 5, 1, 2, 5, 6, 6, 8, 9, 9, 1, 8, 6, 4],
"Temperature": [8.6, 13.7, 16.5, 18.5, 18.0, 13.5, 8.7, 9.2 , 14.2, 15.5, 20.1, 18.6, 12.8, 8.7]
}
)
pivoted_data = pd.pivot_table(df, index=['Month'], columns=['Year'], values=['Apples', 'Temperature']).transpose()
Результат pivoted_table :
Month 4 5 6 7 8 9 10
Year
Apples 2018 3.0 5.0 1.0 2.0 5.0 6.0 6.0
2019 8.0 9.0 9.0 1.0 8.0 6.0 4.0
Temperature 2018 8.6 13.7 16.5 18.5 18.0 13.5 8.7
2019 9.2 14.2 15.5 20.1 18.6 12.8 8.7
Лучшая попытка - использовать метод .transpose () для фреймов данных и визуализировать таблицу, как указано выше, однако это не совсем то, что я ищу.
Ожидаемый результат
Я хочу представить данные следующим образом:
Month 4 5 6 7 8 9 10
Year
2018 Temperature 8.6 13.7 16.5 18.5 18.0 13.5 8.7
Apples 3.0 5.0 1.0 2.0 5.0 6.0 6.0
2019 Temperature 8.0 9.0 9.0 1.0 8.0 6.0 4.0
Apples 9.2 14.2 15.5 20.1 18.6 12.8 8.7
Там, где разница невелика, но весьма важна, поскольку данные отображаются по годам (а не по значениям яблок и температуры).
Мне не удалось найти хорошее решение для текущей проблемы.
Кто-нибудь знает, как таким образом отобразить этот небольшой набор данных?