get row in pandas dataframe using datetime index

Get Rows using Datetime Index in Pandas

In this tutorial, we will learn how to get rows from a Pandas dataframe by using their Datetime index.

How to get a row in Pandas using its Datetime Index?

get row in pandas dataframe using datetime index

To get Pandas dataframe’s rows using a datetime index, the syntax will be-

row = df.loc[date]

Here,

  • df — The Pandas DataFrame object.
  • df.loc[] — A property of Pandas DataFrame to get rows using their row labels.

In the above code, we have a dataframe df with datetime indices. We pass a date to df.loc[] to fetch the required row using its respective date index.

Note that loc[] is Pandas DataFrame’s property used to fetch rows by their respective row labels.

Examples

To understand the above code, we will see some examples. We will use weather data for the first week of October in a city for our examples.

import pandas as pd

d = {
    "Max. Temp." : [41.7, 36.5, 37.7, 35.9, 38.7, 40.2, 40.5],
    "Min. Temp." : [28.8, 25.5, 26.6, 26.3, 24.9, 28.8, 29.6]
     }

index = pd.date_range("2022-10-01", "2022-10-07")
df = pd.DataFrame(d, index=index)
print(df)

Output:

            Max. Temp.  Min. Temp.
2022-10-01        41.7        28.8
2022-10-02        36.5        25.5
2022-10-03        37.7        26.6
2022-10-04        35.9        26.3
2022-10-05        38.7        24.9
2022-10-06        40.2        28.8
2022-10-07        40.5        29.6

Here you can see that the dataframe has dates as its index. This is implemented by passing the range of dates we have created using the pd.date_range() function.

📚 Data Science Programs By Skill Level

Introductory

Intermediate ⭐⭐⭐

Advanced ⭐⭐⭐⭐⭐

🔎 Find Data Science Programs 👨‍💻 111,889 already enrolled

Disclaimer: Data Science Parichay is reader supported. When you purchase a course through a link on this site, we may earn a small commission at no additional cost to you. Earned commissions help support this website and its team of writers.

The pd.date_range() function takes two dates as input and returns the range of dates between them. Also, the data format used by Pandas is yyyy-mm-dd. It also accepts mm-dd-yyyy formats, but we shall stick with the former.

Example 1: Get the row at a specific datetime index

To get the row at a specific datetime index, we pass the datetime index of the required row to df.loc[].

row = df.loc['2022-10-03']
print(row)

Output:

Max. Temp.    37.7
Min. Temp.    26.6
Name: 2022-10-03 00:00:00, dtype: float64

df.loc[] returns a row as a Pandas Series object. But, the column names of the dataframe become the row labels, while the row label of the row in dataframe is set as the name of the Series object.

Example 2: Get rows in a range of continuous datetime indices

To get rows in a range of datetime indices, we use the loc[] property of Pandas to slice out the range. Let’s try to get the rows with dates from the 2nd to the 5th of October.

continuous_range_of_date_rows = df.loc['2022-10-02':'2022-10-05']
print(continuous_range_of_date_rows)

Output:

            Max. Temp.  Min. Temp.
2022-10-02        36.5        25.5
2022-10-03        37.7        26.6
2022-10-04        35.9        26.3
2022-10-05        38.7        24.9

As we see in the output, we have the rows in the given range of dates. Here, df.loc[] returns a Pandas DataFrame object with the same column names as the original dataframe.

Note that the df.loc[] returns a Series object when it is returning one row, but it returns a DataFrame when returning multiple rows.

Example 3: Get rows in a series of a non-continuous date range.

To get rows in a range of non-continuous datetime indices, we use the loc property of the Pandas dataframe to slice out the range. Let’s try to get the rows with the dates 2nd, 3rd, and 6th of October. For that, we will pass the required list of dates to df.loc[].

non_continuous_range_of_date_rows = df.loc[['2022-10-02', '2022-10-03', '2022-10-06']]
print(non_continuous_range_of_date_rows)

Output:

            Max. Temp.  Min. Temp.
2022-10-02        36.5        25.5
2022-10-03        37.7        26.6
2022-10-06        40.2        28.8

Thus, we have a dataframe as our output for the list of dates we have passed to df.loc[].

Summary

From this tutorial, we learned how to:

  •    Create a Pandas DataFrame with a datetime index.
  •    Use loc to obtain a row with a specific datetime index.
  •    Get rows in a continuous range of datetime indices using loc.
  •    Obtain rows in a non-continuous range of datetime indices using loc.

You might also be interested in –


Subscribe to our newsletter for more informative guides and tutorials.
We do not spam and you can opt out any time.


Author

Scroll to Top