我正在尝试在应用 stack() 功能时优化我的运行时。
Initial Dataframe
ID SCORE1 SCORE2 YEAR
0 1111 3 4 2019
1 1111 NaN 3 2019
2 1111 5 4 2019
3 2222 6 7 2019
4 2222 2 NaN 2019
5 3333 NaN 9 2019
6 3333 4 NaN 2019
7 4444 NaN NaN 2019
8 4444 5 6 2019
下面的这个 groupby.apply() 有效。
但是,它需要更大的数据集(300 万条记录 = 25 分钟)
var = df.groupby('ID').apply(lambda x: x.iloc[:, 1:3].stack())
Output Achieved
ID
1111 0 SCORE1 3
SCORE2 4
1 SCORE2 3
2 SCORE1 5
SCORE2 4
2222 3 SCORE1 6
SCORE2 7
4 SCORE1 2
3333 5 SCORE2 9
6 SCORE1 4
4444 8 SCORE1 5
SCORE2 6
Desired output : Same
如何优化此性能?
我可以使用 transform() 吗?如何 ?它没有 stack() 调用
感谢您在处理此类情况时的所有见解