Моя цель - создать один исполняемый файл, используя pyinstaller, преобразовав файл .py или .ipynb. Я хотел бы, чтобы пользователь вводил свой путь к файлу Excel (2 файла), когда он запускает исполняемый файл на своем компьютере. Затем исполняемый файл должен выполнить мой написанный python код, который принимает их файлы данных, введенные в качестве аргументов моей функции, для целей манипулирования данными и возвращает вывод моей функции (манипулированный файл csv) конечному пользователю, использующему это приложение.
def manipulated_data(df,df5,df10):
df2=df.copy()
df4=df2.pivot_table(columns=df2[df2.columns[6]],index=df2[np.r_[df2.columns[0:6],df2.columns[9:17],df2.columns[18:]]],values=df2[df2.columns[7:9]],fill_value='')
df4=df4.reset_index()
#Combining multi-index names
df4.columns = [' '.join(col).strip() for col in df4.columns.values]
df7=df5.melt(id_vars=df5[df5.columns[0:5]],value_vars=df5[df5.columns[6:15]],value_name='Values')
df7=df7.replace('Zone 9`','Zone 9')
ind=df7.variable.unique()
df8=df7.pivot_table(columns=df7[df7.columns[4:6]],
index=df7[df7.columns[0:4]]
, values=df7.columns[6],aggfunc=('first'),fill_value='')
df8=df8.reindex(ind,axis=1,level=1)
df8.columns = [' '.join(col).strip() for col in df8.columns.values]
df8.reset_index(inplace=True)
df9=pd.merge(df4,df8,how='inner',on=['Store ID','Store Name','State'])
df9.fillna('',inplace=True)
dfcoles=pd.concat([df9,df10], axis=0,ignore_index=False,sort=False)
dfcoles.fillna('',inplace=True)
coles_ind=df10.columns
dfcoles=dfcoles.reindex(coles_ind,axis=1)
return dfcoles
df_trial=pd.read_csv('C:/Users/Abdul.Qavi/Downloads/Day 14 data/Part 3.csv',keep_default_na=False)
df_part4=pd.read_csv('C:/Users/Abdul.Qavi/Downloads/Day 14 data/Part 4.csv',keep_default_na=False)
df_coles=pd.read_csv('C:/Users/Abdul.Qavi/Downloads/Coles Service SF.csv',keep_default_na=False)
##This file wouldn't be entered by the user. It would always be a part of the script.
dfx=manipulated_data(df_trial,df_part4,df_coles)