In partnership with

Every Python tutorial I watched taught numpy, pandas, matplotlib. The same ones, in the same order. And it is enough when you are just starting. But there are libraries that can make your day-to-day work significantly faster.

Here are 3 I accidentally found out about and now use all the time:

Before we proceed - a small ad. Your clicks on the ads help to cover newsletter hosting fees. Thank you!

For product teams moving at AI speed.

AI makes it easier to ship anything, even bad ideas. The hard part is knowing which ideas are worth building.

Jira Product Discovery brings your ideas, customer insights, and priorities into one place, so your team can decide what to ship and move forward with confidence.

Capture ideas, prioritize with evidence, and build living roadmaps your team can rally around—all while staying connected to delivery in Jira, so everyone can see what’s being built and why.

Better product decisions in the AI era.

1. pyjanitor — cleaner pandas in one line

Every time you load a dataset, you probably do the same three things to the column names. Lowercase everything. Strip the whitespace. Replace spaces with underscores so you can actually reference them in code.

That is three separate steps every single time. pyjanitor does it in one.

# pip install pyjanitor

import pandas as pd
import janitor

df = pd.read_csv('your_data.csv')

# Instead of:
df.columns = df.columns.str.lower().str.strip().str.replace(' ', '_')

# Just write:
df = df.clean_names()

It also has remove_empty() which drops any fully blank rows or columns in one call — another thing you probably do manually every time.

df = df.clean_names().remove_empty()

pyjanitor is built as an extension to pandas, so it chains naturally onto everything you already know.

More pyjanitor and other data cleaning tricks you can find in this YouTube video - Data Cleaning in Python part 2 https://youtu.be/EQmoXBHoeF4

2. pyforest — stop writing import statements

How many times have you started a new notebook and typed the same ten lines?

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.model_selection import train_test_split
...

pyforest imports everything on demand. You just use the library, and pyforest imports it automatically in the background the moment you need it.

# pip install pyforest

import pyforest

# Now just use whatever you need — no imports required
df = pd.read_csv('data.csv')       # pandas imported automatically
df.plot()                          # matplotlib imported automatically
sns.heatmap(df.corr())             # seaborn imported automatically

At the end of your session, you can run pyforest.active_imports() to see exactly which libraries were used — and copy those lines into your final script when you are ready to share it with your colleagues or publish the notebook to github.

pyforest.active_imports()
# ['import pandas as pd', 'import seaborn as sns', 'import matplotlib.pyplot as plt']

It supports over 40 of the most common data science libraries. The ones it does not know, you import normally. It does not replace imports — it just removes the boilerplate for the ones you use constantly.

3. ydata-profiling — a full EDA report in one line

This is the one that surprises people the most.

When you load a new dataset, you probably run df.head(), df.info(), df.describe(), df.isnull().sum(), maybe a few plots. That is ten minutes of setup before you even start the actual analysis.

ydata-profiling does all of that in one line and generates a complete HTML report — distributions, correlations, missing value patterns, duplicate rows, outliers, everything.

# pip install ydata-profiling

import pandas as pd
from ydata_profiling import ProfileReport

df = pd.read_csv('your_data.csv')

profile = ProfileReport(df, title='Dataset Report', explorative=True)
profile.to_file('report.html')

Open report.html in your browser. You get an interactive report with every column's distribution, how many nulls, which columns correlate with each other, which rows are duplicates.

For a dataset you have never seen before, this is the fastest way to understand what you are working with before you write a single analysis query or cleaning step.

One caveat: on very large datasets (millions of rows) it can be slow. Use df.sample(50_000) to profile a sample first.

profile = ProfileReport(df.sample(50_000), title='Sample Report')
profile.to_file('report.html')

More on ydata-profiling can be found in another YouTube video - Data Cleaning with Python part 1 - https://youtu.be/Y_s3hndYbB0

This week on YouTube

We are talking about data science role and how it changed in the last 2 years, what skills are now automated and what can’t be replaced by AI

Keep pushing 💪,

Karina

If you are curious about building a personal brand on LinkedIn and eventually making money from it — my friend and I started a separate Substack for exactly that. We are already 700+ followers in and sharing everything we know. Check it out here → https://thelinkedinlab.substack.com/

Just starting with Python? Wondering if programming is for you?

Master key data analysis tasks like cleaning, filtering, pivot and grouping data using Pandas, and learn how to present your insights visually with Matplotlib with ‘Data Analysis with Python’ masterclass.

Already know the basics and want something more hands-on?

You'll work through a real business problem, complete a portfolio-ready project, and practise the kind of analysis employers expect from junior analysts.

👉 Start with the Masterclass if you're a complete beginner.

👉 Choose the Python Challenge if you're comfortable with the fundamentals and want to apply them to a real project.

Data Analyst & Data Scientist