Repository: tqdm/tqdm (Python)

Issue:
When 'index' or 'columns' is passed as pandas axis, convert to corres…
…ponding int

- [x] I have visited the [source website], and in particular
  read the [known issues]
- [x] I have searched through the [issue tracker] for duplicates
- [ ] I have mentioned version numbers, operating system and
  environment, where applicable:
  ```python
  import tqdm, sys
  print(tqdm.__version__, sys.version, sys.platform)
  ```
- [x] If applicable, I have mentioned the relevant/related issue(s)

  [source website]: https://github.com/tqdm/tqdm/
  [known issues]: https://github.com/tqdm/tqdm/#faq-and-known-issues
  [issue tracker]: https://github.com/tqdm/tqdm/issues?q=



Hints:
# [Codecov](https://codecov.io/gh/tqdm/tqdm/pull/570?src=pr&el=h1) Report
> Merging [#570](https://codecov.io/gh/tqdm/tqdm/pull/570?src=pr&el=desc) into [master](https://codecov.io/gh/tqdm/tqdm/commit/19cd7d735a235177b7f8a4413391226c4aac0c8d?src=pr&el=desc) will **decrease** coverage by `0.57%`.
> The diff coverage is `0%`.



```diff
@@            Coverage Diff            @@
##           master    #570      +/-   ##
=========================================
- Coverage   99.27%   98.7%   -0.58%     
=========================================
  Files           8       8              
  Lines         692     696       +4     
  Branches      123     125       +2     
=========================================
  Hits          687     687              
- Misses          3       5       +2     
- Partials        2       4       +2
```

A performance test failed on Python 2.7. I'm not sure whether or how to address this issue.

Patch:
diff --git a/tqdm/_tqdm.py b/tqdm/_tqdm.py
--- a/tqdm/_tqdm.py
+++ b/tqdm/_tqdm.py
@@ -581,6 +581,10 @@ def inner(df, func, *args, **kwargs):
                             not isinstance(df, _Rolling_and_Expanding):
                         # DataFrame or Panel
                         axis = kwargs.get('axis', 0)
+                        if axis == 'index':
+                            axis = 0
+                        elif axis == 'columns':
+                            axis = 1
                         # when axis=0, total is shape[axis1]
                         total = df.size // df.shape[axis]
 
diff --git a/tqdm/_tqdm_notebook.py b/tqdm/_tqdm_notebook.py
--- a/tqdm/_tqdm_notebook.py
+++ b/tqdm/_tqdm_notebook.py
@@ -102,7 +102,7 @@ def status_printer(_, total=None, desc=None, ncols=None):
         except NameError:
             # #187 #451 #558
             raise ImportError(
-                "IntProgress not found. Please update juputer and ipywidgets."
+                "IntProgress not found. Please update jupyter and ipywidgets."
                 " See https://ipywidgets.readthedocs.io/en/stable"
                 "/user_install.html")
 


Test patch:
diff --git a/tqdm/tests/tests_pandas.py b/tqdm/tests/tests_pandas.py
--- a/tqdm/tests/tests_pandas.py
+++ b/tqdm/tests/tests_pandas.py
@@ -104,7 +104,7 @@ def task_func(x):
         assert res1.equals(res2)
 
         # apply
-        for axis in [0, 1]:
+        for axis in [0, 1, 'index', 'columns']:
             res3 = df.progress_apply(task_func, axis=axis)
             res4 = df.apply(task_func, axis=axis)
             assert res3.equals(res4)