summaryrefslogtreecommitdiffstats
path: root/examples/pandas_progress_apply.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/pandas_progress_apply.py')
-rw-r--r--examples/pandas_progress_apply.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/examples/pandas_progress_apply.py b/examples/pandas_progress_apply.py
new file mode 100644
index 0000000..4fc8f6b
--- /dev/null
+++ b/examples/pandas_progress_apply.py
@@ -0,0 +1,29 @@
+import numpy as np
+import pandas as pd
+
+from tqdm.auto import tqdm
+
+df = pd.DataFrame(np.random.randint(0, 100, (100000, 6)))
+
+# Register `pandas.progress_apply` and `pandas.Series.map_apply` with `tqdm`
+# (can use `tqdm.gui.tqdm`, `tqdm.notebook.tqdm`, optional kwargs, etc.)
+tqdm.pandas(desc="my bar!")
+
+# Now you can use `progress_apply` instead of `apply`
+# and `progress_map` instead of `map`
+df.progress_apply(lambda x: x**2)
+# can also groupby:
+# df.groupby(0).progress_apply(lambda x: x**2)
+
+# -- Source code for `tqdm_pandas` (really simple!)
+# def tqdm_pandas(t):
+# from pandas.core.frame import DataFrame
+# def inner(df, func, *args, **kwargs):
+# t.total = groups.size // len(groups)
+# def wrapper(*args, **kwargs):
+# t.update(1)
+# return func(*args, **kwargs)
+# result = df.apply(wrapper, *args, **kwargs)
+# t.close()
+# return result
+# DataFrame.progress_apply = inner