Как извлечь данные времени из столбца файла Excel с помощью Pandas?
Предварительное условие: регулярные выражения в Python
В этих статьях мы обсудим, как извлечь данные времени из столбца файла Excel с помощью Pandas. Предположим, что наш файл Excel выглядит так, как показано на рисунке ниже, тогда нам нужно извлечь время из столбца таблицы Excel и сохранить его в новом столбце Dataframe.

Для просмотра файла Excel щелкните здесь.
Подход:
- Импортируйте необходимый модуль.
- Импортируйте данные из файла Excel.
- Сделайте дополнительный столбец для хранения извлеченного времени.
- Установите индекс для поиска извлекаемого столбца.
- Определите шаблон формата времени (ЧЧ: ММ: СС).
- Время поиска и присвоение соответствующему столбцу в Dataframe.
Давайте посмотрим на пошаговую реализацию:
Step 1: Import the required module and read data from Excel file.
Python3
# importing required moduleimport pandas as pd;import re; # Read excel file and store in to DataFramedata = pd.read_excel("time_sample_data.xlsx"); print("Original DataFrame")data |
Выход:

Step 2: Make an extra column for storing Time data.
Python3
# Create column for Timedata["New time"] = Nonedata |
Выход:

Step 3: Set Index for searching
Python3
# set indexindex_set = data.columns.get_loc("Description")index_time = data.columns.get_loc("New time") print(index_set, index_time) |
Выход:
1 2
Шаг 4: Определение регулярного выражения (regex) для времени.
Regex for time HH/ MM/ SS format:
[0-24]{2}:[0-60]{2}:[0-60]{2}.
Python3
# define time patterntime_pattern = r"([0-24]{2}:[0-60]{2}:[0-60]{2})" |
Шаг 5: время поиска и присвоение соответствующему столбцу в фрейме данных.
For searching the time using regex in a string we are using re.search()function of re library.
Python3
# searching the entire DataFrame# with Time patternfor row in range(0, len(data)): time = re.search(time_pattern, data.iat[row,index_set]).group() data.iat[row, index_time] = time print("Final DataFrame") data |
Выход:

Complete Code:
Python3
# importing required moduleimport pandas as pd;import re; data = pd.read_excel("time_sample_data.xlsx");print("Original DataFrame")print(data) # Create column for Datedata["New time"]= Noneprint(data) # set indexindex_set= data.columns.get_loc("Description")index_time=data.columns.get_loc("New time")print(index_set,index_time) # define the time pattern in HH:MM:SStime_pattern= r"([0-24]{2}:[0-60]{2}:[0-60]{2})" #searching dataframe with time patternfor row in range(0, len(data)): time= re.search(time_pattern,data.iat[row,index_set]).group() data.iat[row,index_time] = time print("
Final DataFrame") data |
Выход:

Примечание. Перед запуском этой программы убедитесь, что вы уже установили библиотеку xlrd в среде Python.
Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.
Для начала подготовьтесь к собеседованию. Расширьте свои концепции структур данных с помощью курса Python DS. А чтобы начать свое путешествие по машинному обучению, присоединяйтесь к курсу Машинное обучение - базовый уровень.