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

Опубликовано: 27 Марта, 2022

Предварительное условие: регулярные выражения в Python

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

Для просмотра файла Excel щелкните здесь.

Подход:

  • Импортируйте необходимый модуль.
  • Импортируйте данные из файла Excel.
  • Сделайте дополнительный столбец для хранения извлеченного времени.
  • Установите индекс для поиска извлекаемого столбца.
  • Определите шаблон формата времени (ЧЧ: ММ: СС).
  • Время поиска и присвоение соответствующему столбцу в Dataframe.

Давайте посмотрим на пошаговую реализацию:

Step 1: Import the required module and read data from Excel file.

Python3

# 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

Выход:

Step 2: Make an extra column for storing Time data.

Python3

# Create column for Time
data["New time"] = None
data

Выход:

Step 3: Set Index for searching 

Python3

# 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: Определение регулярного выражения (regex) для времени.

Regex for time HH/ MM/ SS format: 

[0-24]{2}:[0-60]{2}:[0-60]{2}.

Python3

# define time pattern
time_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 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

Выход:

Complete Code:

Python3

# 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(" Final DataFrame")    
data

Выход:

Примечание. Перед запуском этой программы убедитесь, что вы уже установили библиотеку xlrd в среде Python.

Внимание компьютерщик! Укрепите свои основы с помощью базового курса программирования Python и изучите основы.

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