如何在我的数据集中应用 MinMaxScaler?按 NUM(ID) 分组并针对每一列

How can I apply MinMaxScaler in my dataset? group by NUM(ID) and for each columns

Num  Year  1   2   3   4   5   6   7   8   9   10  11  12
111  2009  0   0   667 584 343 245 0   0   231 742 0   482
111  2010  0   10  624 4   143 445 20  991 0   742 0   482
112  2008 .....

数据集是这样的。 Num, Year : Dataframe 中的多索引(pandas)

并且所需的输出是使用按 Num 分组的从 1 到 12 的列缩放数据。 所以我可以将每年的使用情况(每个月)与相同的 'Num'.

进行比较
print(df_pivot.groupby('Num')[1].apply(lambda x: MinMaxScaler().fit_transform(x.values.reshape(-1,1))))
print(df_pivot.groupby('Num')[1].apply(lambda x: MinMaxScaler().fit_transform(x.values.reshape(-1,1))).loc[11111])
 ########
First Output is : 
11111    [[0.0], [0.0], [0.8012012012012012], [0.690210...
11112    [[0.5682020471740098], [0.5516243880729862], [...
11115    [[0.0], [0.0], [0.9999999999999999], [0.747932...
-----------------
Second Output is :
[[0.        ]
 [0.97836918]
 [0.91226151]
 [1.        ]
 [0.68939118]
 [0.51707376]
 [0.50893183]]

如果查看第一个输出,没有 Year 索引,只有 Num 索引。 因此结果以 pandas.Series 的形式返回,但这不是所需的输出。

有人可以帮忙获取数据吗??

11111   2010   0.0  0.3  0.4 1.0  0.5 ....
11111   2011   0.8  ....
11111   2012   0.2  ....
....

而不是: df_pivot.groupby('Num')[1] 你必须写: df_pivot.groupby(['Num','Year'])

例如:

print(df_pivot.groupby(['Num','Year']).apply(lambda x: MinMaxScaler().fit_transform(x.values.reshape(-1,1)))))