У меня есть задача - построить несколько subplots для моих данных в Plotly. Разумнее всего сделать это циклом. Помогите, пожалуйста, с кодом:
У меня есть датасет, в котором использован мультииндекс. Хотелось бы это сохранить.
import pandas as pd
from plotly.subplots import make_subplots
import plotly.graph_objects as go
my_months = [9,9,9,10,10,10,11,11,11]
my_vls = [10, 20, 30, 20, 15, 25, 20, 30, 20]
my_names = ['one', 'two', 'three', 'one', 'two', 'three', 'one', 'two', 'three',]
test = pd.DataFrame(zip(my_months, my_names, my_vls), columns=['month','names', 'values'])
test = test.groupby(['month', 'names']).sum()
# test
test_fig = make_subplots(rows = len(test.index.levels[0]),
cols = 1)
for i, month in enumerate(test.index.levels[0]):
local_df = test.loc[test.index.get_level_values(0)==month]
for name in local_df.index.levels[1]:
local_df_2 = local_df.loc[local_df.index.get_level_values(1)==name]
trace = go.Bar(x = local_df_2.index.get_level_values(1),
y = local_df_2.values)
test_fig.append_trace(trace, i+1, 1)
test_fig.show()
Идея была такая: В первом цикле для каждого месяца обрезать датасет с данными только по этому месяцу Во втором цикле интеративно пройтись по именам и для каждого имени построить столбец.
Подскажите, что я делаю не так с циклами?