Ich habe versucht, eine Automatisierung zu erstellen, bei der die Verwendung mehrerer Potenzpunkte in einem Lauf erstellt wurde. Ich habe bereits mehrere PPTX basierend auf der für Loops erstellt, aber das Textfeld, das mit der Formel in den für Loops erstellt wurde p>
Es hat den Wert der vorherigen Iteration von den für Schleifen gehalten.
PPTX A - SPC A < /P>
PPTX B - Beide SPC A & B erscheint < /p>
PPTX C - SPC A, B & C erscheint
... und so weiter auf andere PPTX < /p>
Mein Ziel war wie dieses < /p>
pptX a - spc a < /p>
pptX b - spc b < /p>
pptX c - spc c
... und so auf < /p>
hier ist ein Teil des Code als Referenz: < /p>
import openpyxl as xl
import pandas as pd
from pptx import Presentation
from pptx.util import Inches, Pt
#Wave Number
wave = input('Wave number:')
#Category
category = input('Category:')
#Ending Week
ending_week = input('Ending Week:')
df = pd.read_excel('data (2).xlsx',sheet_name='Sheet1')
unique_values = df['Division'].unique()
#PowerPoint Automation
prs = Presentation('Test Set KPIs.pptx')
#calling out slides
slide_1 = prs.slides[0]
slide_2 = prs.slides[1]
left = top = width = height = Inches(1)
#Getting the top 3 units
for value in unique_values:
filtered_df = df[df['Division'] == value]
#Getting the highest Category role
unique_cat_role = filtered_df.groupby('Category Role', as_index = False).sum('Sales')
highest_cat_role = unique_cat_role.sort_values(by = 'Sales', ascending = False)
top_unit_role = highest_cat_role.head(1)
if len(top_unit_role) > 0:
top_role = top_unit_role.iloc[0]
highest_cat_role_new = top_role['Category Role']
filtered_df_new = filtered_df[filtered_df['Category Role'] == highest_cat_role_new]
#Sorting Units
sorted_df = filtered_df_new.sort_values(by='Units', ascending=False)
top_3 = sorted_df.head(3)
#sales mix change
sales_diff = (int(filtered_df_new['Sales'].sum())-int(filtered_df_new['Sales PY'].sum()))#/int(filtered_df_new['Sales PY'].sum())
sales_percentage_chg = str(round((sales_diff/int(filtered_df_new['Sales PY'].sum()))*100,2)) + "%"
#print(sales_percentage_chg)
unit_diff = (int(filtered_df_new['Units'].sum())-int(filtered_df_new['Units PY'].sum()))
unit_percentage_chg = str(round((unit_diff/int(filtered_df_new['Units PY'].sum()))*100,2)) + '%'
#print(unit_percentage_chg)
#print(top_3)
#Getting Highest
if len(top_3) > 2:
first_row = top_3.iloc[0]
specific_data_1st = first_row['UPC']
specific_data_1st_unit = int(first_row['Units'])/26
#Getting 2nd Highest
second_row = top_3.iloc[1]
specific_data_2nd = second_row['UPC']
specific_data_2nd_unit = int(second_row['Units'])/26
#Getting 3rd Highest
third_row = top_3.iloc[2]
specific_data_3rd = third_row['UPC']
specific_data_3rd_unit = int(third_row['Units'])/26
#Top Sales
sorted_df_sales = filtered_df_new.sort_values(by='Sales', ascending=False)
top_3_sales = sorted_df_sales.head(3)
#Getting Highest
if len(top_3_sales) > 2:
first_row_sales = top_3_sales.iloc[0]
specific_data_sales_1st = first_row_sales['UPC']
specific_data_sales_1st = int(first_row_sales['Sales'])/26
#Getting 2nd Highest
second_row_sales = top_3_sales.iloc[1]
specific_data_sales_2nd = second_row_sales['UPC']
specific_data_sales_2nd = int(second_row_sales['Sales'])/26
#Getting 3rd Highest
third_row_sales = top_3_sales.iloc[2]
specific_data_sales_3rd = third_row_sales['UPC']
specific_data_sales_3rd = int(third_row_sales['Sales'])/26
sales_sum = filtered_df_new.groupby('Vendor Parent (L1)', as_index = False).sum()
sorted_vendor = sales_sum.sort_values(by = 'Sales', ascending = False)
top_3_vendor = sorted_vendor.head(3)
#print (top_3_vendor)
#Getting Highest
if len(top_3_vendor) > 2:
first_row_vendor = top_3_vendor.iloc[0]
specific_data_vendor_1st = first_row_vendor['Vendor Parent (L1)']
sales_mix = first_row_vendor['Sales']/sorted_vendor['Sales'].sum()
#print(sales_mix)
#print(specific_data_vendor_1st + value)
#print(first_row_vendor)
#Getting 2nd Highest
second_row_vendor = top_3_vendor.iloc[1]
specific_data_vendor_2nd = second_row_vendor['Vendor Parent (L1)']
sales_mix_2nd = second_row_vendor['Sales']/sorted_vendor['Sales'].sum()
#Getting 3rd Highest
third_row_vendor = top_3_vendor.iloc[2]
specific_data_vendor_3rd = third_row_vendor['Vendor Parent (L1)']
sales_mix_3rd = third_row_vendor['Sales']/sorted_vendor['Sales'].sum()
#print(str(specific_data_vendor_1st) + str(specific_data_vendor_2nd) + str(specific_data_vendor_3rd) + str(vendor))
#Slide 1 title
title = slide_1.shapes.title
title.text = f'Test Set Walk Through Notes\nWave:{wave}\nCategory:{category}\nFiscal Week: Last 26 weeks: (Ending {ending_week})'
textbox = slide_2.shapes.add_textbox(left,top,width,height)
sales_percentage_chg_pptx = textbox.text_frame
sales_percentage_chg_pptx.text = f'{str(sales_percentage_chg)}'
ppt_name = f'{value} - {category} Test Set KPIs.pptx'
prs.save(ppt_name)
< /code>
Ich habe bereits versucht, in der für die Loop kaufen zu machen. pptx
Python: Für Schleifen und Power Point -Schöpfung ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post