Я хочу случайным образом разделить мой набор данных на подмножества поездов и тестов, которые выглядят следующим образом:
x in session_id page_id
0 0.0 1.0 trn-04a23351-283d paul
1 -1.0 2.0 trn-04a23351-283d paul2
2 -1.0 3.0 trn-04a23351-283d paul3
3 -1.0 4.0 trn-04a23351-283d paul4
4 -1.0 1.0 blz-412313we-333 paul
5 -1.0 2.0 blz-412313we-333 paul
27 0.0 1.0 adasdfs sarah
28 -1.0 2.0 adasdfs sarah
29 0.0 3.0 adasdfs sarah
на основе столбца session_id. Я хочу случайным образом разделить сеансы на два набора данных. И после этого возьмите все взаимодействия для этих сессий. Наивный способ сделать это:
df['is_train'] = df.groupby('session_id').session_id.transform(lambda x: np.random.ranf() > ratio)
Но использование Python Lambda слишком сильно снижает производительность.