Picture by Creator | Midjourney
Time-based knowledge will be distinctive once we face completely different time-zones. Nevertheless, deciphering timestamps will be arduous due to these variations. This information will make it easier to handle time zones and timestamps with the Pandas library in Python.
Preparation
On this tutorial, we’ll use the Pandas package deal. We will set up the package deal utilizing the next code.
Now, we’ll discover work with time-based knowledge in Pandas with sensible examples.
Dealing with Time Zones and Timestamps with Pandas
Time knowledge is a singular dataset that gives a time-specific reference for occasions. Probably the most correct time knowledge is the timestamp, which comprises detailed details about time from 12 months to millisecond.
Let’s begin by making a pattern dataset.
import pandas as pd
knowledge = {
'transaction_id': [1, 2, 3],
'timestamp': ['2023-06-15 12:00:05', '2024-04-15 15:20:02', '2024-06-15 21:17:43'],
'quantity': [100, 200, 150]
}
df = pd.DataFrame(knowledge)
df['timestamp'] = pd.to_datetime(df['timestamp'])
The ‘timestamp’ column within the instance above comprises time knowledge with second-level precision. To transform this column to a datetime format, we must always use the pd.to_datetime
perform.”
Afterward, we are able to make the datetime knowledge timezone-aware. For instance, we are able to convert the info to Coordinated Common Time (UTC)
df['timestamp_utc'] = df['timestamp'].dt.tz_localize('UTC')
print(df)
Output>>
transaction_id timestamp quantity timestamp_utc
0 1 2023-06-15 12:00:05 100 2023-06-15 12:00:05+00:00
1 2 2024-04-15 15:20:02 200 2024-04-15 15:20:02+00:00
2 3 2024-06-15 21:17:43 150 2024-06-15 21:17:43+00:00
The ‘timestamp_utc’ values comprise a lot info, together with the time-zone. We will convert the prevailing time-zone to a different one. For instance, I used the UTC column and altered it to the Japan Timezone.
df['timestamp_japan'] = df['timestamp_utc'].dt.tz_convert('Asia/Tokyo')
print(df)
Output>>>
transaction_id timestamp quantity timestamp_utc
0 1 2023-06-15 12:00:05 100 2023-06-15 12:00:05+00:00
1 2 2024-04-15 15:20:02 200 2024-04-15 15:20:02+00:00
2 3 2024-06-15 21:17:43 150 2024-06-15 21:17:43+00:00
timestamp_japan
0 2023-06-15 21:00:05+09:00
1 2024-04-16 00:20:02+09:00
2 2024-06-16 06:17:43+09:00
We may filter the info in keeping with a selected time-zone with this new time-zone. For instance, we are able to filter the info utilizing Japan time.
start_time_japan = pd.Timestamp('2024-06-15 06:00:00', tz='Asia/Tokyo')
end_time_japan = pd.Timestamp('2024-06-16 07:59:59', tz='Asia/Tokyo')
filtered_df = df[(df['timestamp_japan'] >= start_time_japan) & (df['timestamp_japan'] <= end_time_japan)]
print(filtered_df)
Output>>>
transaction_id timestamp quantity timestamp_utc
2 3 2024-06-15 21:17:43 150 2024-06-15 21:17:43+00:00
timestamp_japan
2 2024-06-16 06:17:43+09:00
Working with time-series knowledge would permit us to carry out time-series resampling. Let us take a look at an instance of knowledge resampling hourly for every column in our dataset.
resampled_df = df.set_index('timestamp_japan').resample('H').depend()
Leverage Pandas’ time-zone knowledge and timestamps to take full benefit of its options.
Extra Sources
Cornellius Yudha Wijaya is an information science assistant supervisor and knowledge author. Whereas working full-time at Allianz Indonesia, he likes to share Python and knowledge ideas by way of social media and writing media. Cornellius writes on quite a lot of AI and machine studying matters.