Файлы к уроку:
Описание
В этом уроке мы научимся импортировать таблицы из книг MS Excel. После импорта данных мы почистим таблицу и приведем ее к нормальному виду.
Решение
Импорт мы выполним с помощью команды модуля pandas. Далее мы создадим недостающие столбцы, удалим лишние столбцы и строки и назначим правильные типы данных. Полученный результат запишем в файл .xlsx.
Примененные функции
- pandas.read_excel
- numpy.where
- pandas.DataFrame.ffill
- pandas.notnull
- pandas.DataFrame.dtypes
- pandas.DataFrame.astype
- pandas.DataFrame.to_excel
Код
Импорт модулей.
import pandas as pd
import numpy as np
Читаем xlsx, пропускаем 5 первых строк, указываем какие столбцы нужно импортировать.
data = pd.read_excel('dataset.xlsx',
skiprows=5,
usecols='A:H')
Создадим столбцы Адрес и POSID. Нам нужно условно извлечь подстроку из столбца N опер.
data['Адрес'] = np.where(data['№ опер.'].str.startswith('POS'),
data['№ опер.'].str.split(',', n=1).str[1],
np.nan)
data['POSID'] = np.where(data['№ опер.'].str.startswith('POS'),
data['№ опер.'].str.split('(', n=1).str[1].str.split(')', n=1).str[0],
np.nan)
Заполняем значения null вниз.
data['Адрес'] = data['Адрес'].ffill()
data['POSID'] = data['POSID'].ffill()
Отфильтруем значения null по столбцу Дата опер.
data = data[data['Дата опер.'].notnull()]
Назначить типы данных для столбцов № опер, POSID.
data = data.astype({'№ опер.': int,
'POSID': int})
Записать полученную готовую таблицу в .xlsx.
data.to_excel('transactions.xlsx',
sheet_name='Transactions',
index=False)