Pandas – это библиотека анализа данных python, и в этом посте мы будем работать над примером того, как изменить форму pandas
data с помощью melt
import pandas as pd data = { "location":['CityA', 'CityB'], "Temperature" : ["Predict", "Actual"], "Jan-2010":[30, 32], "Feb-2010":[45, 43], "Mar-2010":[24, 22] } print(data)
{'Feb-2010': [45, 43], 'Jan-2010': [30, 32], 'Mar-2010': [24, 22], 'location': ['CityA', 'CityB'], 'Temperature': ['Predict', 'Actual']}
Приведенные выше данные представляют собой совокупность средних температур 2 городов cityA и cityB в месяцах Jan , Feb & Mar .
Создайте фрейм данных pandas
Давайте создадим объект pandas DataFrame, чтобы мы могли выполнять наши операции с данными.
df = pd.DataFrame(data, columns=['location', 'Temperature','Jan-2010', 'Feb-2010', 'Mar-2010']) print(df)
location Temperature Jan-2010 Feb-2010 Mar-2010 0 CityA Predict 30 45 24 1 CityB Actual 32 43 22
Измените форму фрейма данных для лучшего анализа.
Эти данные в настоящее время находятся в удобочитаемой форме, так как есть строка для каждого местоположения и отдельный столбец для Temparture в определенные месяцы; но это не очень хорошо для анализа, так как; если бы мы хотели создать операции use ‘groupby’ или начать нормализовать этот фрейм данных, нам нужно было бы сделать некоторые изменения.
Давайте изменим форму фрейма данных, чтобы иметь столбец, содержащий местоположение, и еще один столбец, содержащий информацию о температуре.
df2 = pd.melt(df, id_vars=["location", "Temperature"], var_name="Date", value_name="Value") print(df2)
location Temperature Date Value 0 CityA Predict Jan-2010 30 1 CityB Actual Jan-2010 32 2 CityA Predict Feb-2010 45 3 CityB Actual Feb-2010 43 4 CityA Predict Mar-2010 24 5 CityB Actual Mar-2010 22
Сортировка данных
Для сортировки данных мы можем использовать панды.DataFrame.sort_values(column_list)
& передайте ему список столбцов.
df_sorted = df2.sort_values(["location", "Temperature"]) print(df_sorted)
location Temperature Date Value 0 CityA Predict Jan-2010 30 2 CityA Predict Feb-2010 45 4 CityA Predict Mar-2010 24 1 CityB Actual Jan-2010 32 3 CityB Actual Feb-2010 43 5 CityB Actual Mar-2010 22