You are currently viewing Как извлечь данные о времени из столбца файла Excel с помощью Pandas?

Как извлечь данные о времени из столбца файла Excel с помощью Pandas?

Обязательное условие: Регулярные выражения в 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.