Обязательное условие: Регулярные выражения в Python
В этих статьях мы обсудим, как извлечь данные о времени из столбца файла Excel с помощью Pandas. Предположим, что наш файл Excel выглядит как на приведенном ниже изображении, тогда нам нужно извлечь время из столбца листа Excel и сохранить его в новом столбце фрейма данных.
Для просмотра файла Excel Нажмите Здесь.
Подход:
- Импортируйте необходимый модуль.
- Импортируйте данные из файла Excel.
- Сделайте дополнительный столбец для хранения извлеченного времени.
- Установите индекс для поиска извлекаемого столбца.
- Определите шаблон формата времени (ЧЧ: ММ: СС).
- Время поиска и присвоение соответствующему столбцу в кадре данных.
Давайте посмотрим Пошаговую Реализацию:
Шаг 1: Импортируйте необходимый модуль и считайте данные из файла Excel.
# importing required module
import pandas as pd;
import re;
# Read excel file and store in to DataFrame
data = pd.read_excel("time_sample_data.xlsx");
print("Original DataFrame")
data
Выход:
Шаг 2: Создайте дополнительный столбец для хранения данных о времени.
# Create column for Time
data['New time'] = None
data
Выход:
Шаг 3: Установите индекс для поиска
# set index
index_set = data.columns.get_loc('Description')
index_time = data.columns.get_loc('New time')
print(index_set, index_time)
Выход:
1 2
Шаг 4: Определение регулярного выражения (регулярного выражения) для времени.
Регулярное выражение для формата времени ЧЧ/ мм/ СС:
[0-24]{2}\:[0-60]{2}\:[0-60]{2}.
# define time pattern
time_pattern = r'([0-24]{2}\:[0-60]{2}\:[0-60]{2})'
Шаг 5: Время поиска и назначение соответствующему столбцу в фрейме данных.
Для поиска времени с помощью регулярного выражения в строке мы используем функцию re.search() библиотеки re.
# searching the entire DataFrame
# with Time pattern
for 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
Выход:
Полный Код:
# importing required module
import pandas as pd;
import re;
data = pd.read_excel("time_sample_data.xlsx");
print("Original DataFrame")
print(data)
# Create column for Date
data['New time']= None
print(data)
# set index
index_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:SS
time_pattern= r'([0-24]{2}\:[0-60]{2}\:[0-60]{2})'
#searching dataframe with time pattern
for row in range(0, len(data)):
time= re.search(time_pattern,data.iat[row,index_set]).group()
data.iat[row,index_time] = time
print("\n Final DataFrame")
data
Выход:
Примечание: Перед запуском этой программы убедитесь, что вы уже установили библиотеку xlrd в своей среде Python.