2
假設我有一個數據框可以按person
列(A,B,C,D等)分組,並且每個人都有一定數量的記錄。問題是如何在不改變每個組內的順序的情況下洗牌這些人?如何根據分類列對大熊貓數據幀進行洗牌
假設我有一個數據框可以按person
列(A,B,C,D等)分組,並且每個人都有一定數量的記錄。問題是如何在不改變每個組內的順序的情況下洗牌這些人?如何根據分類列對大熊貓數據幀進行洗牌
考慮數據框df
df = pd.DataFrame(dict(
Person=list('BBBEEEAAACCCZZZZZ'),
Other=range(17)
))
Other Person
0 0 B
1 1 B
2 2 B
3 3 E
4 4 E
5 5 E
6 6 A
7 7 A
8 8 A
9 9 C
10 10 C
11 11 C
12 12 Z
13 13 Z
14 14 Z
15 15 Z
16 16 Z
使用np.random.permutation
洗牌Person
然後/loc
/reset_index
df.set_index('Person').loc[
np.random.permutation(df.Person.unique())
].reset_index()
Person Other
0 Z 12
1 Z 13
2 Z 14
3 Z 15
4 Z 16
5 A 6
6 A 7
7 A 8
8 C 9
9 C 10
10 C 11
11 B 0
12 B 1
13 B 2
14 E 3
15 E 4
16 E 5
非常感謝。這工作得很好。 –
都來自同一個人的記錄在一起已經或者將它們散落,如果這是真的,你會如何洗牌? – Psidom
對不起。在這方面,我應該讓它不那麼困惑。他們已經放在一起,我會說。 –