Tuesday Tip #36: Deciphering the pandas index 🕵️‍♂️


Hi Reader,

Do you have a topic you'd like me to cover in a future tip? Reply and let me know! 💌


🔗 Link of the week

Deep Learning Fundamentals (free course)

Are you interested in getting started with Deep Learning in Python? I haven't taken this course, but it looks promising!

I was thinking of starting a YouTube series in which I work through this course and share some of my learnings (and questions), and then you could follow along at home. Would that be of interest to you?


👉 Tip #36: Eight things you need to know about the pandas index

One aspect of Python's pandas library that can be confusing to newcomers is the concept of the "index". Every pandas DataFrame or Series has an index, and it's used for identification, selection, and alignment.

Here are some key facts about the index that will help you to work with pandas objects more effectively:

1️⃣ The index is on the left

The sequence of numbers on the left side is called the index, and they're used to identify the DataFrame rows. Sometimes they're called the "row labels".

2️⃣ By default, the index is a sequence of integers

Because I didn't define an index when creating the DataFrame, it assigned the numbers 0 through 192 as the index. They're stored in a special object called the "RangeIndex".

3️⃣ The column names are stored in an "Index" object

When people talk about "the index", they're talking about the row labels. But it turns out that the column names are stored in a special type of object called an "Index"!

That being said, you should never refer to the column names as "the index"... just call them "the columns" or "the column names".

4️⃣ The labels are not included in the shape

You should think of the index and columns as labels for the DataFrame. They're not part of the DataFrame "contents", and thus they're not included in its shape.

5️⃣ The index remains with each row

If you filter the DataFrame, the index remains with each row to identify it.

6️⃣ The index can be used for selection

You can use the loc accessor to select one or more rows or columns by label.

7️⃣ You can set a different column as the index

Notice that the default integer index no longer exists.

8️⃣ Setting a meaningful index allows for easier selection

Rather than referring to Brazil as "23" (its previous row label), you can refer to it as "Brazil".


Going further

If you want to learn more about the pandas index, check out these Data School videos:

🔗 What do I need to know about the pandas index? (Part 1)

🔗 What do I need to know about the pandas index? (Part 2)

Are you new to pandas? Stay tuned for my upcoming course, pandas in 30 days! Coming February 2024 🚀


🐊 See you later, alligator!

Did you like this week’s tip? Please forward it to a friend, or share this link in your favorite Slack group. It really helps me out! 🙌

See you next Tuesday!

- Kevin

P.S. AI murder mystery

Did someone AWESOME forward you this email? Sign up here to receive Data Science tips every week!

Learn Data Science from Data School 📊

Join 25,000+ aspiring Data Scientists and receive Python & Data Science tips every Tuesday!

Read more from Learn Data Science from Data School 📊

Hi Reader, I'm really proud of this week's tip because it covers a topic (data leakage) that took me years to fully understand. 🧠 It's one of those times when I feel like I'm truly contributing to the collective wisdom by distilling complex ideas into an approachable format. 💡 You can read the tip below 👇 or on my blog. 🔗 Link of the week Building an AI Coach to Help Tame My Monkey Mind (Eugene Yan) In this short post, Eugene describes his experiences calling an LLM on the phone for coaching:...

Hi Reader, Last week, I recorded the FINAL 28 LESSONS 🎉 for my upcoming course, Master Machine Learning with scikit-learn. That's why you didn't hear from me last week! 😅 I edited one of those 28 videos and posted it on YouTube. That video is today's tip, which I'll tell you about below! 👉 Tip #45: How to read the scikit-learn documentation In order to become truly proficient with scikit-learn, you need to be able to read the documentation. In this video lesson, I’ll walk you through the five...

Hi Reader, happy Tuesday! My recent tips have been rather lengthy, so I'm going to mix it up with some shorter tips (like today's). Let me know what you think! 💬 🔗 Link of the week A stealth attack came close to compromising the world's computers (The Economist) If you haven't heard about the recent "xz Utils backdoor", it's an absolutely fascinating/terrifying story! In short, a hacker (or team of hackers) spent years gaining the trust of an open-source project by making helpful...