Archive

Posts Tagged ‘Lesson’

Python: Orders Manager P4

August 27, 2019 Leave a comment


Learning : Orders Management System using Python and Pandas
Subject: File Exists and Adding new Record

In the last post of our system, we develop the file_exists function, the function is checking if the file not exists then will create ond and enter a dummy data. Now we need to add a code to the application body that call this function and if the file exists the application will run without applying the or creating any file. Here is the code in the application body:

Header here

if file_exists() != ‘exit’ :

# calling the menu

user_enter = the_menu()

”’
Validation: If the user enter any thing else than numbers
or (q for quit) nothing will happen.
”’

while user_enter !=’q’ or ‘Q’ :

if user_enter in [‘q’,’Q’] :

print(‘\n You select to Exit the application.’)

save_it = input(‘\n Do your want to save your work/changes [y or n] ? ‘)

if save_it in [‘y’,’Y’]:

save_the_df (df)

break

elif user_enter not in [‘1′,’2′,’3′,’4′,’5′,’6′,’7′,’8′,’9’] :

user_enter = the_menu()

else:

user_choice(user_enter)

user_enter = the_menu()


In this post we will talk about the Adding new record function, since we may start from new file we need to enter some records in our data file. Here is the def add_new_record() that will help us to enter our data.

Add New Record Function

def add_new_record(old_df):

clear() # To clear the terminal.

app_header()

# First we will fetch the columns from the df

col_list = []

for each in old_df.columns :

col_list.append(each)

print(col_list)

# Get max id and increase it by 1

next_id = old_df[‘order_no’].max()+1

new_row={}

# let user enter the new record.

print(‘\n Enter the data for each field then press Enter.\n’ )

print(‘ If you just press Enter NaN will be entered.’)

for each in col_list:

if each !=’order_no’:

print(‘ Enter data for ‘,each)

new_row.update({each:(input(‘ : ‘))})

new_row.update({‘order_no’:next_id})

old_df = old_df.append([new_row])

for each in col_list :

if (old_df.loc[old_df[‘order_no’] == next_id, each][0]) ==”:

(old_df.loc[old_df[‘order_no’] == next_id,[each]]) = float(‘NaN’)

print(‘\n New Record added successfully..\n’)

# print out last 5 rows to show the new record.

print(‘\n The new record in the df..\n ‘,old_df.tail(5))

global df # Reset the df as global variable

df = old_df

input(‘\n\n\n\n ** Press any key to continue .. . . ‘)


In the coming post, we will work on the date validation function also the user choice loop so we can run the application and test it.



Follow me on Twitter..





Advertisements

Python: Orders Manager P3

August 25, 2019 Leave a comment


Learning : Orders Management System using Python and Pandas
Subject: Data File and Adding new Record

In This system and once the user run the application we will check if the Data file exists or not. If the file exists then the system will run, otherwise the application will guide the user to some questions to create the new file. Then we will talk about adding new records to our file.

First time run: Each time we run the application the system will chick for the file, at this version we will have only one data file we will call it “orders_dataframe.csv” if the file exists the application will continue and the file will be loaded automaticly, if not, then the first choice of our menu will be called. Function called “create_file()” will run, we will inform the user that the file is not there and if he want to create a new file. If the user select Yes, the file will be created and a dummy row (id = 0) will be added. If the user select No, we will show a message then if any key pressed the system will quite. .. Let’s see the code ..

File Exists check point
def file_exists():

# Check if the data file not exists create one

if not (os.path.exists(‘orders_dataframe.csv’)):

no_file =’o’

while no_file not in [‘y’,’Y’,’n’,’N’]: # Validation for user input

clear() # To clear the terminal.

app_header()

no_file = input(‘\n The file ”orders_dataframe.csv” is not exists, Do you want to create new one: [ y , n ] ‘)

if no_file in [‘y’,’Y’]: # Validation for user input

create_file() # Call the function create_file

return

elif no_file in [‘n’,’N’]: # Validation for user input

print(‘\n You select not to create a data file, so the system will Exit. ‘)

input(‘\n\n Press any key …’)

return ‘exit’


Validation:
To keep asking the user for his input until he enters one of [ y,Y,n,N]

while no_file not in [‘y’,’Y’,’n’,’N’]:

no_file = input(‘\n The file ”orders_dataframe.csv” is not exists, Do you want to create new one: [y,n] ‘)


Last, I am thinking to add a header for our app, so this header will be at the top of all out screens. Here it is ..

Application Header
def app_header():

print(‘\n ********************************’)

print(‘ ** Orders Managment System **’)

print(‘ ** App V.08-19 **’)

print(‘ **********************************\n’)


In the next post we will look at the Validation on the File Exists check and create file function, also first row added to our dataframe.



Follow me on Twitter..





Python: Pandas Lesson 12

August 18, 2019 1 comment


Learning : Pandas Lesson 12
Subject: Zoo Management System – P6

In this last post of Zoo Managment System series we will cover two of most important functions after the Adding Records, they are Editing a Record and Deleting Record, both will be in there simplest form with no validations code or try … Exception block.

Editing Record: To edit a record we need to identify it first, so we will use the id then the function will ask the user for each column if he want to change/update the data, if the user select Yes (y) then he will get the prompt to enter the new data, and if he select No (n) then the application will ask him about the other column. Here is the code ..

Edit a Record

def edit_record(df):

clear() # To clear the terminal.

print(‘\n We are in a editing mode, for each column if you want to edit select ”y” if not select ”n”\n’)

# First we will fitch the columns from the df

col_list = []

for each in df.columns :

col_list.append(each)

print(df.to_string(index=False))

print(‘\n Select the id of the rescord you want to edit:’)

edit_id = input(‘ Enter the id : (c for cancel ) ‘)

if edit_id in [‘c’,’C’] :

input(‘ You select to cancel the editing… \n ** Press any key to continue .. . . ‘)

return

else:

for each in col_list:

if each !=’id’:

chose_edit= input(‘\n Do you want to change {} (y or n)’.format(each))

if chose_edit in [‘y’,’Y’]:

you_change = input(‘ Enter the new value: ‘)

df.loc[df[‘id’] == int(edit_id), [each]] = you_change

else:

input(‘\n You select not to change {} press Enter to change another column.’.format(each))

print(‘\n You finish Editing. .. \n ‘)

input(‘\n\n\n\n ** Press any key to continue .. . . ‘)


Here is a screen shot of the code …

Deleting a Record:A last function we will work on is deleting a record. To do this first we will show the user all the rows in the DataFrame then he will select the id of the column to be deleted. Here is the code..

Delete a Record

def delete_record(df1):

clear()

print(‘\n’,df1.to_string(index=False))

del_record = input(‘\n Enter the ”ID” for the record you want to delete: ‘)

#Delete the row with id = del_record 

df1 = df1[df1.id != int(del_record)]

print(‘\n Record been deleted … .. \n ‘)

global df # Reset the df as global variable

df = df1

input(‘\n\n\n\n ** Press any key to continue .. . . ‘)


Now we just finish a simple application to manage our zoo file. When we start writing pandas lessons I select a simple data frame csv file fond on the web, and we work on it as simple as we can to go through a most important functions in any application we plan to write. We did’t cover any validations part or any mistakes the user may do. So to avoid all this I am planning to start working on another project that we will cover any missing part here.

Also I am working on publishing the source code of this application on my download page here..




:: Pandas Lessons Post ::

Lesson 1 Lesson 2 Lesson 3 Lesson 4
Lesson 5 Lesson 6 Lesson 7 Lesson 8
Lesson 9 Lesson 10 Lesson 11 Lesson 12



Follow me on Twitter..