Есть исходный файл Orders.xlsx :
Weekday Shop1 Shop_2 Shop_3 Shop4
mon 7 1 7 8
tue 4 2 5
wed 5 2 3
thu 8 8 7
fri 15 11 13 9
sat 21 18 17
sun 25 16 25 17
1) Нужно функцией
rename_columns(test_df)
переименовать столбцы исходного файла в формат
shop_1, shop_2...
2) функцией
fillna_values(test_df, n=0)
заменить пробелы исходника на 1. ' n' - число и по умолчанию = 0
3) функцией
etl()
собрать итоговые отчеты в форматы 'csv' и 'xlsx' в дир исходного файла.
Вот мой код:
import pandas as pd
import os
orders_path = './data/Orders.xlsx'
n = 1
def rename_columns(test_df):
test_df.columns = ['Shop_1', 'Shop_2', 'Shop_3', 'Shop_4']
expected_columns = 4
if len(test_df.columns) != expected_columns:
print(f"Ожидалось {expected_columns} столбца, но найдено {len(test_df.columns)}.")
return None
return test_df
test_df = pd.read_excel(orders_path, index_col=0)
if not os.path.exists(orders_path):
print(f"Файл {orders_path} не найден.")
def fillna_values(test_df, n=0):
res = rename_columns(test_df)
return res.fillna(n)
def etl():
res = fillna_values(test_df, n)
res.to_csv('./data/Orders_etl.csv')
res.to_excel('./data/Orders_etl.xlsx')
return 'Файлы успешно сохранены'
result = etl()
print(result)
Все работает, но тест не проходит:
E ValueError: Length mismatch: Expected axis has 3 elements, new values have 4 elements
=========================== short test summary info ============================
ERROR tests/test_solution.py - ValueError: Length mismatch: Expected axis has...
!!!!!!!!!!!!!!!!!!!! Interrupted: 1 error during collection !!!!!!!!!!!!!!!!!!!!
длину проверил:
import pandas as pd
test_df = pd.read_excel('./data/Orders.xlsx', index_col=0)
print(len(test_df.columns))
test_df_res = pd.read_excel('./data/Orders_etl.xlsx', index_col=0)
print(len(test_df_res.columns))
Чего не так?