Untitled
unknown
plain_text
a year ago
3.8 kB
5
Indexable
import pandas as pd import shutil from openpyxl import load_workbook maszynowka = ['FEELER', 'INT200SY', 'INT300SY', 'MAT2'] montaz = ['AS_BOND', 'AS_BPanl'] # df_report zawiera tylko i wyłącznie przefiltrowany Report Bookings df_report = pd.read_excel('Report Report Bookings by Machine no data.xlsx', header=1) df_report = df_report.loc[df_report['Work centre'].isin(maszynowka)] df_report.to_excel('wynik2.xlsx', index=False) old_file = '26-06-2024 Operators Booking (Machining) no data.xlsx' new_file = 'NEW FILE Operators Booking (Machining).xlsx' shutil.copy(old_file, new_file) wb = load_workbook(new_file) ws = wb['Report Bookings'] ws_master = wb['Master'] df_wynik2 = pd.read_excel('wynik2.xlsx', header=0) for row in range(3, ws.max_row + 1): for col in range(1, 17): ws.cell(row=row, column=col).value = None for i in range(len(df_wynik2)): for j in range(len(df_wynik2.columns)): ws.cell(row=i + 3, column=j + 1, value=df_wynik2.iat[i, j]) wb.save(new_file) wb = load_workbook(new_file, data_only=True) ws = wb['Report Bookings'] df_calosc = pd.read_excel('NEW FILE Operators Booking (Machining).xlsx', sheet_name='Report Bookings', header=1) df_master = pd.read_excel('NEW FILE Operators Booking (Machining).xlsx', sheet_name='Master') def sum_conditions(row): C_value = row['Part'] E_value = row['Op.'] G_value = row['Work centre'] filtered_master = df_master[ (df_master['Part'] == C_value) & (df_master['Operation'] == E_value) & (df_master['Name'] == G_value) ] filtered_master['Set time'] = pd.to_numeric(filtered_master['Set time'].astype(str).str.replace(',', '.').str.strip().replace('', '0'), errors='coerce') return filtered_master['Set time'].sum() / 60 df_calosc['Set Time'] = df_calosc.apply(sum_conditions, axis=1) for i, value in enumerate(df_calosc['Set Time'], start=3): ws[f'P{i}'] = value # zmiana zmiennych w obu kolumnach na float df_calosc['Standard Hours'] = pd.to_numeric(df_calosc['Standard Hours'], errors='coerce') def setandstd(row): Std = row['Standard Hours'] Set = row['Set Time'] return Std + Set df_calosc['std + set'] = df_calosc.apply(setandstd, axis=1) for i, value in enumerate(df_calosc['std + set'], start=3): ws[f'Q{i}'] = value # Funkcja do przekształcania wartości dziesiętnych na czas GG:MM:SS def decimal_to_time(decimal_hours): hours = int(decimal_hours) minutes = int((decimal_hours - hours) * 60) seconds = int(((decimal_hours - hours) * 60 - minutes) * 60) return f"{hours:02}:{minutes:02}:{seconds:02}" df_calosc['Actual Hours.1'] = df_calosc['Actual Hours'].apply(decimal_to_time) for i, value in enumerate(df_calosc['Actual Hours.1'], start=3): ws[f'R{i}'] = value df_calosc['Standard Hours.1'] = df_calosc['Standard Hours'].apply(decimal_to_time) for i, value in enumerate(df_calosc['Standard Hours.1'], start=3): ws[f'S{i}'] = value def delta(row): setstd = row['std + set'] actual = row['Actual Hours'] return actual - setstd df_calosc['Delta Hrs'] = df_calosc.apply(delta, axis=1) for i, value in enumerate(df_calosc['Delta Hrs'], start=3): ws[f'T{i}'] = value def delta_to_percent(row): return (row['Delta Hrs'] / row['std + set']) if row['std + set'] != 0 else 0 df_calosc['Delta %']=df_calosc.apply(delta_to_percent, axis=1) for i, value in enumerate(df_calosc['Delta %'], start=3): ws[f'U{i}'] = value def warunek(row): sprawdzana = row['Delta %'] if sprawdzana > 0.2 or sprawdzana <-0.2: return 'Zle' else: return 'Dobrze' df_calosc['Opis']= df_calosc.apply(warunek, axis=1) for i, value in enumerate(df_calosc['Opis'], start=3): ws[f'V{i}'] = value print(df_calosc.columns) wb.save(new_file) wb.close()
Editor is loading...
Leave a Comment