Я попытался просто сделать 2 groupbys и затем объединить оба результата. Просто для соглашений об именах я использовал pivot_table.
df2 = df.groupby(by=["id","year"]).agg({
"avg": np.median,
"sum": np.sum,
"div": lambda x : x.iloc[0]/x.iloc[1]
}).reset_index().pivot_table(values=["avg","sum","div"],columns=["year"],index=["id"]).reset_index()
df2.columns = [str(col[1])+"_"+col[0] if col[1] != "" else col[0] for col in df2.columns.values ]
df2.merge(df.groupby(by=["id"]).agg({
"avg": np.median,
"div": lambda x : x.iloc[0]/x.iloc[1],
"sum": np.sum
}), on="id")
Измените форму для наследования UserControl вместо Формы, затем зафиксируйте любые ошибки компиляции.
Существует также способ встроить форму в управление: вот код в VB:
Public Shared Sub ShowFormInControl(ByRef ctl As Control, ByRef frm As Form)
If ctl IsNot Nothing AndAlso frm IsNot Nothing Then
frm.TopLevel = False
frm.FormBorderStyle = FormBorderStyle.None
frm.Dock = DockStyle.Fill
frm.Visible = True
ctl.Controls.Add(frm)
End If
End Sub
Я думаю, что получил этот код из другого сообщения на Так, но я не могу помнить, где, очень жаль если это - Ваш фрагмент кода!
Не говорю, что вы должны сделать это сейчас, но в будущем вы можете взглянуть на MEF . Это фреймворк (среди прочего) для создания составных приложений, которых, похоже, вы пытаетесь достичь.