我具有根據以下的數據幀:在多個索引的Python隨機抽樣
id_1 id_2 value 1 0 1 1 1 2 1 2 3 2 0 4 2 1 1 3 0 5 3 1 1 4 0 5 4 1 1 4 2 6 4 3 7 11 0 8 11 1 14 13 0 10 13 1 9
我想取出大小爲n的隨機樣本,無需更換,從基於ID_1此表。此行必須與id_1列唯一,並且只能出現一次。
最終結果是這樣的:
id_1 id_2 value 1 1 2 2 0 4 4 3 7 13 0 10
我曾嘗試做一組,並使用該指數通過random.sample採取了行,但它dosent一路走下去。
有人可以給我一個關於如何使這項工作的指針嗎?代碼爲DF下面!
一如既往,感謝您的時間和輸入!
/swepab
df = pd.DataFrame({'id_1' : [1,1,1,2,2,3,3,4,4,4,4,11,11,13,13],
'id_2' : [0,1,2,0,1,0,1,0,1,2,3,0,1,0,1],
'value_col' : [1,2,3,4,1,5,1,5,1,6,7,8,14,10,9]})
好的,這看起來很整齊,而且速度很快,因爲它有很多數據。讓我測試它真的很快,並在一瞬間回來! – swepab
@swepab回顧一下,可以通過僅在id_1列上執行第一部分來加快速度。查看更新。 –
只是最後一個問題,如果你不介意 - 是否有辦法對樣本進行分層,所以它會考慮* id_2 *的大小,它可以有不同數量的行,或者這些都是一個新的問題? – swepab