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

回答編集履歴

3

追加

2019/06/05 06:46

投稿

YasuhiroNiji
YasuhiroNiji

スコア584

answer CHANGED
@@ -11,7 +11,7 @@
11
11
  print(d)
12
12
  ```
13
13
 
14
- もし、Pandas で`for`文をどうしても使う必要がある場合は、速度を要求される場合は CythonやNumba等を使って処理をするようになります。処理速度である程度妥協できるのであれば、df.apply()を使うか、又は、column単位で取り出すことが容易なので、下のように必要なcolumnだけを`zip`関数でまとめてforでループにします。`iterrows()`を使うよりもかなり速いです。
14
+ もし、Pandas で`for`文をどうしても使う必要がある場合は、速度を要求される場合は CythonやNumba等を使って処理をするようになります。処理速度である程度妥協できるのであれば、df.apply()を使うか、又は、column単位で取り出すことが容易なので、下のように必要なcolumnだけを`zip`関数でまとめてforでループにします。`iterrows()`を使うよりもかなり速いです。PandasでもSeriesの場合は、`for`文で各要素を取り出すことができます。
15
15
 
16
16
  ```
17
17
  for a, b in zip(df['a'], df['b']):

2

回答の追加

2019/06/05 06:46

投稿

YasuhiroNiji
YasuhiroNiji

スコア584

answer CHANGED
@@ -11,6 +11,11 @@
11
11
  print(d)
12
12
  ```
13
13
 
14
- もし、Pandas で`for`文をどうしても使う必要がある場合は、速度を要求される場合は CythonやNumba等を使って処理をするようになります。処理速度である程度妥協できるのであれば、df.apply()を使うことがいです。
14
+ もし、Pandas で`for`文をどうしても使う必要がある場合は、速度を要求される場合は CythonやNumba等を使って処理をするようになります。処理速度である程度妥協できるのであれば、df.apply()を使うか、又は、column単位で取り出すことが容易なので、下のように必要なcolumnだけを`zip`関数でまとめてforでループにします。`iterrows()`を使うよりもかなり速いです。
15
15
 
16
+ ```
17
+ for a, b in zip(df['a'], df['b']):
18
+ print(a, b)
19
+ ```
20
+
16
21
  拡張for文と言っているのでJavaかC++の世界を知っていると思われますが、本当に`for`文が必要な処理であれば、Pandasを使うよりもJavaやC++の方が処理に遥かに向いています。

1

追加

2019/06/05 06:42

投稿

YasuhiroNiji
YasuhiroNiji

スコア584

answer CHANGED
@@ -11,4 +11,6 @@
11
11
  print(d)
12
12
  ```
13
13
 
14
+ もし、Pandas で`for`文をどうしても使う必要がある場合は、速度を要求される場合は CythonやNumba等を使って処理をするようになります。処理速度である程度妥協できるのであれば、df.apply()を使うことが多いです。
15
+
14
- もし、Pandas で`for`文をどうしても使う必要がある場合は、CythonやNumba等を使ってC/C++で処理をするようになります。拡張for文と言っているのでJavaかC++の世界を知っていると思われますが、`for`文が必要な処理であれば、Pandasを使うよりもJavaやC++の方が処理に遥かに向いています。
16
+ 拡張for文と言っているのでJavaかC++の世界を知っていると思われますが、本当に`for`文が必要な処理であれば、Pandasを使うよりもJavaやC++の方が処理に遥かに向いています。