teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

パフォーマンス意識

2019/12/19 09:47

投稿

kirara0048
kirara0048

スコア1399

answer CHANGED
@@ -3,7 +3,7 @@
3
3
  import pandas as pd
4
4
 
5
5
  df = pd.DataFrame({'A':range(10), 'B':range(10), 'C':range(10)})
6
- np.random.shuffle(df.loc[:, 'A'])
6
+ np.random.shuffle(df.loc[:, 'A'].to_numpy())
7
7
 
8
8
  print(df)
9
9
  # A B C
@@ -17,4 +17,12 @@
17
17
  # 7 4 7 7
18
18
  # 8 1 8 8
19
19
  # 9 9 9 9
20
+ ```
21
+
22
+ ```Python
23
+ >>> %timeit df.iloc[:,0] = df.iloc[:,0].sample(frac=1).reset_index(drop=True)
24
+ 412 µs ± 1.72 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
25
+
26
+ >>> %timeit np.random.shuffle(df.loc[:, 'A'].to_numpy())
27
+ 40.3 µs ± 117 ns per loop (mean ± std. dev. of 7 runs, 10000 loops each)
20
28
  ```