From 1ceb70ca0f2276def3e98b81f8becb5192b6c9b2 Mon Sep 17 00:00:00 2001 From: rakesh kumar Date: Thu, 21 Jan 2021 20:43:55 +0530 Subject: [PATCH] just save --- Networking/Check_site.py | 1 + Projects/Hangman_game.py | 4 +- Tkinter/bindFunctionEvent.py | 13 +++ Tkinter/messagebox.py | 21 ++++- Tkinter/tempCodeRunnerFile.py | 3 + fileHandling/Find_lines_start_with_T.py | 4 +- fileHandling/file_read.py | 4 +- fileHandling/file_read_linewise.py | 15 +-- fileHandling/result12_2020.py | 120 ++++++++++++++++++++++++ fileHandling/tempCodeRunnerFile.py | 2 +- numpy/create_1.py | 7 ++ pandas/df_access_column.py | 5 +- pandas/df_access_rows.py | 7 +- pandas/df_append.py | 17 ++++ pandas/df_creation2.py | 26 +++-- pandas/df_delete_row_col.py | 20 ++++ pandas/df_index_label.py | 20 ++++ pandas/df_merge.py | 14 +++ pandas/df_rename_Columns.py | 18 ++++ pandas/df_saving.py | 16 ++++ pandas/index_label.py | 15 +++ pandas/tempCodeRunnerFile.py | 5 +- student.csv | 14 ++- student_data.xlsx | Bin 0 -> 5668 bytes webscraper/youtubeDownloader.py | 2 +- welcome.mp3 | Bin 20352 -> 0 bytes 26 files changed, 332 insertions(+), 41 deletions(-) create mode 100644 Tkinter/tempCodeRunnerFile.py create mode 100644 fileHandling/result12_2020.py create mode 100644 numpy/create_1.py create mode 100644 pandas/df_append.py create mode 100644 pandas/df_delete_row_col.py create mode 100644 pandas/df_index_label.py create mode 100644 pandas/df_merge.py create mode 100644 pandas/df_rename_Columns.py create mode 100644 pandas/df_saving.py create mode 100644 pandas/index_label.py create mode 100644 student_data.xlsx delete mode 100644 welcome.mp3 diff --git a/Networking/Check_site.py b/Networking/Check_site.py index 605832f..b14a213 100644 --- a/Networking/Check_site.py +++ b/Networking/Check_site.py @@ -1,5 +1,6 @@ import os +hostname ="https://binarynote.com" for i in range(2, 255): response = os.system("ping -4t " + hostname) diff --git a/Projects/Hangman_game.py b/Projects/Hangman_game.py index 2bf894d..8be9927 100644 --- a/Projects/Hangman_game.py +++ b/Projects/Hangman_game.py @@ -1,4 +1,4 @@ -9# Hangman Games +# Hangman Games # program by : rakesh kumar # website : https://cbsetoday.com @@ -6,7 +6,7 @@ import random as r # steps to select a random word from sowpods.txt file -with open("sowpods.txt") as file: +with open("c:/python/projects/sowpods.txt") as file: data = file.read().split() number = r.randint(0, len(data)) word = data[number] diff --git a/Tkinter/bindFunctionEvent.py b/Tkinter/bindFunctionEvent.py index a59df77..3ce1e15 100644 --- a/Tkinter/bindFunctionEvent.py +++ b/Tkinter/bindFunctionEvent.py @@ -5,7 +5,20 @@ def printName(event): print("hello my name is rakesh ") button1= Button(root,text="Print my Name") +button2= Button(root,text="Print my Name-2") +button3= Button(root,text="Print my Name-3") +button4= Button(root,text="Print my Name-4") +button5= Button(root,text="Print my Name-5") + button1.bind('',printName) +button2.bind('',printName) +button3.bind('',printName) +button4.bind('',printName) +button5.bind('',printName) button1.pack() +button2.pack() +button3.pack() +button4.pack() +button5.pack() root.mainloop() \ No newline at end of file diff --git a/Tkinter/messagebox.py b/Tkinter/messagebox.py index 37d42f3..048b864 100644 --- a/Tkinter/messagebox.py +++ b/Tkinter/messagebox.py @@ -1,10 +1,21 @@ from tkinter import * import tkinter.messagebox +import tkinter.simpledialog root = Tk() -tkinter.messagebox.showinfo('Window Title','This is the message') -answer = tkinter.messagebox.askyesno('Question',"Are you sure to delete this record ?") -if answer ==True : - print("You selected to delete record") +""" +yesno = tkinter.messagebox.askyesno('Question',"Are you sure to delete this record ?") +tkinter.messagebox.askokcancel() +tkinter.messagebox.askquestion() +tkinter.messagebox.askretrycancel() +tkinter.messagebox.askyesnocancel() -root.mainloop() \ No newline at end of file +if yesno ==True : + print("You selected to delete record") + """ + +no = tkinter.simpledialog.askstring('List Input','Enter number ') +no = no.split() +print(no) + +root.mainloop() diff --git a/Tkinter/tempCodeRunnerFile.py b/Tkinter/tempCodeRunnerFile.py new file mode 100644 index 0000000..58d09e5 --- /dev/null +++ b/Tkinter/tempCodeRunnerFile.py @@ -0,0 +1,3 @@ +yesno = tkinter.messagebox.askyesno('Question',"Are you sure to delete this record ?") +if yesno ==True : + print("You selected to delete record") \ No newline at end of file diff --git a/fileHandling/Find_lines_start_with_T.py b/fileHandling/Find_lines_start_with_T.py index 2bf0da7..a4bfad1 100644 --- a/fileHandling/Find_lines_start_with_T.py +++ b/fileHandling/Find_lines_start_with_T.py @@ -3,9 +3,9 @@ # made on : 07/07/2018 file = open(r"abcd.txt",'r') -count=0; +count=0 for line in file.readlines(): if line[0]=='T': count+=1 file.close() -print("Total lines that start with alphabet 'T' :",count) \ No newline at end of file +print("Total lines that start with alphabet 'T' :", count) \ No newline at end of file diff --git a/fileHandling/file_read.py b/fileHandling/file_read.py index 5aada0a..1786e67 100644 --- a/fileHandling/file_read.py +++ b/fileHandling/file_read.py @@ -1,4 +1,4 @@ -file = open(r"abcd.txt",'r') -data1 = file.read() +file = open("demo.txt") +data1 = file.read() # print(data1) file.close() \ No newline at end of file diff --git a/fileHandling/file_read_linewise.py b/fileHandling/file_read_linewise.py index 28db2df..1297eb3 100644 --- a/fileHandling/file_read_linewise.py +++ b/fileHandling/file_read_linewise.py @@ -2,10 +2,11 @@ #made by : rakesh kumar # made on : 07/07/2018 -file = open(r"abcd.txt",'r') -count=0; -for line in file.readlines(): - if "Project" in line.split(): - count+=1 -file.close() -print("Total 'Project' term available :",count) \ No newline at end of file + + +file = open("abcd.txt",'r') +data = file.readlines() +for line in data: + print(data) + +file.close() \ No newline at end of file diff --git a/fileHandling/result12_2020.py b/fileHandling/result12_2020.py new file mode 100644 index 0000000..2360e6c --- /dev/null +++ b/fileHandling/result12_2020.py @@ -0,0 +1,120 @@ +import csv +import re +import xlwt + + +def write2_cell(ws, row, roll, gender, name, marks): + ws.write(row, 0, roll) + ws.write(row, 1, name) + ws.write(row, 2, gender) + + for values in marks.values(): + if(values[0] == '301'): + ws.write(row, 3, values[1]) + if(values[0] == '302'): + ws.write(row, 4, values[1]) + if(values[0] == '041'): + ws.write(row, 5, values[1]) + if(values[0] == '042'): + ws.write(row, 6, values[1]) + if(values[0] == '043'): + ws.write(row, 7, values[1]) + if(values[0] == '283'): + ws.write(row, 8, values[1]) + if(values[0] == '265'): + ws.write(row, 9, values[1]) + if(values[0] == '044'): # biology + ws.write(row, 10, values[1]) + if(values[0] == '048'): # physical + ws.write(row, 11, values[1]) + if(values[0] == '030'): # economics + ws.write(row, 12, values[1]) + if(values[0] == '055'): # Accounts + ws.write(row, 13, values[1]) + if(values[0] == '054'): # BST + ws.write(row, 14, values[1]) + if(values[0] == '812'): # marketing + ws.write(row, 15, values[1]) + if(values[0] == '028'): # Pol science + ws.write(row, 16, values[1]) + if(values[0] == '034'): # music + ws.write(row, 17, values[1]) + if(values[0] == '049'): # music + ws.write(row, 18, values[1]) + + +file = open(r'C:\Users\rakesh\Desktop\z60074.txt', 'r') +rows = csv.reader(file) +wb = xlwt.Workbook() +ws = wb.add_sheet("result") +""" ws1 = wb.add_sheet("result1") """ + +st = xlwt.easyxf('font: bold yes;align: horiz centre , vert centre ,wrap yes') +ws.write(0, 0, "Roll No", st) +ws.write(0, 1, "Student Name", st) +ws.write(0, 2, "Gender", st) +ws.write(0, 3, "English", st) +ws.write(0, 4, "Hindi", st) +ws.write(0, 5, "Maths", st) +ws.write(0, 6, "Physics", st) +ws.write(0, 7, "Chemistry", st) +ws.write(0, 8, "CS", st) +ws.write(0, 9, "IP", st) +ws.write(0, 10, "Bio", st) +ws.write(0, 11, "Physical", st) +ws.write(0, 12, "Eco", st) +ws.write(0, 13, "Account", st) +ws.write(0, 14, "Bst", st) +ws.write(0, 15, "marketing", st) +ws.write(0, 16, "Pol Sci", st) +ws.write(0, 17, "Music", st) +ws.write(0, 18, "ART", st) +ws.write(0, 19, "result", st) + +n = 1 +count = 0 +for row in rows: + if(len(row) <= 0): + continue + else: + count += 1 + line1 = ''.join(row) + line2 = re.sub(' +', ' ', line1) + line3 = line2.split(' ') + if(count % 2 == 1): + sub = {} + roll = line3[0] + gender = line3[1] + name = line3[2] + " " + line3[3] + number = False + try: + sub[1] = ['' . join(line3[4])] + sub[2] = ['' . join(line3[5])] + sub[3] = ['' . join(line3[6])] + sub[4] = ['' . join(line3[7])] + sub[5] = ['' . join(line3[8])] + if(line3[9][0].isdigit()): + sub[6] = ['' . join(line3[9])] + number = True + except: + continue + + else: + try: + sub[1].append(line3[1]) + sub[2].append(line3[3]) + sub[3].append(line3[5]) + sub[4].append(line3[7]) + sub[5].append(line3[9]) + if number: + sub[6].append(line3[11]) + except: + print(roll, name, line3) + continue + + if(count % 2 == 0): + write2_cell(ws, n, roll, gender, name, sub) + n = n+1 + +wb.save(r"C:\Users\rakesh\Desktop\result123.xls") +print('File Generated.....Please check your file') diff --git a/fileHandling/tempCodeRunnerFile.py b/fileHandling/tempCodeRunnerFile.py index 40c766c..34c692b 100644 --- a/fileHandling/tempCodeRunnerFile.py +++ b/fileHandling/tempCodeRunnerFile.py @@ -1 +1 @@ - print(x) \ No newline at end of file +print("Total lines that start with alphabet 'T' :",count) \ No newline at end of file diff --git a/numpy/create_1.py b/numpy/create_1.py new file mode 100644 index 0000000..20943b5 --- /dev/null +++ b/numpy/create_1.py @@ -0,0 +1,7 @@ +import numpy as np +a = np.array([1, 2, 3, 4, 5, 5, 6, 7, 8]) +print(a[2]) +print(a[0]) +print(a[:3]) # slicing example +print(a[2:6]) +print(a[2::2]) diff --git a/pandas/df_access_column.py b/pandas/df_access_column.py index b5703ba..9321384 100644 --- a/pandas/df_access_column.py +++ b/pandas/df_access_column.py @@ -12,4 +12,7 @@ ] heading = ["admno", "name", "marks", "fees"] df = pd.DataFrame(data, columns=heading) -print(df[['name','fees']] +print(df['marks']+10) +print(df.marks>75) +print(df['marks'][df.marks>75]) + diff --git a/pandas/df_access_rows.py b/pandas/df_access_rows.py index a615797..f808ecf 100644 --- a/pandas/df_access_rows.py +++ b/pandas/df_access_rows.py @@ -12,4 +12,9 @@ ] heading = ["admno", "name", "marks", "fees"] df = pd.DataFrame(data, columns=heading) -print(df[1]) \ No newline at end of file +print(df.head()) +print(df.head(2)) +print(df.tail()) +print(df.tail(3)) +print(df[1:3]) + diff --git a/pandas/df_append.py b/pandas/df_append.py new file mode 100644 index 0000000..4de2967 --- /dev/null +++ b/pandas/df_append.py @@ -0,0 +1,17 @@ +# create dataframe using list of Tuple +import pandas as pd +data = [ + (1101, 'rakesh', 56, 5656.56), + (1203, 'jatin jain', 56, 5666.56), + (1205, 'pushkar', 78, 5666.56), + (1206, 'arushi', 98, 4564.34), + (1208, 'mannat bhatia', 89, 4500), + (1234, 'unnati', 67, 3500.56), + (1245, 'Nikunj Tyagi', 68, 4500), + (5755, 'vishank', 89, 5000) +] +heading = ["admno", "name", "marks", "fees"] +df = pd.DataFrame(data, columns=heading) +df = df.append({'admno': 9999, 'name': 'ramji', 'marks': 99, + 'fees': 9999.99}, ignore_index=True) +print(df) diff --git a/pandas/df_creation2.py b/pandas/df_creation2.py index 853c5ac..e1cd974 100644 --- a/pandas/df_creation2.py +++ b/pandas/df_creation2.py @@ -1,12 +1,18 @@ -# create dataframe using list of Python Dictionary +# create dataframe using list of Tuple import pandas as pd -df = pd.DataFrame( - [ - {'admno': 1101,'name': 'rakesh','marks' :56, 'fees': 5656.56}, - {'admno': 1203, 'name':'jatin jain','marks':56, 'fees': 5666.56}, - {'admno': 1205, 'name':'pushkar','marks':78, 'fees': 5666.56}, - {'admno': 1206, 'name':'arushi','marks':98, 'fees': 4564.34}, - {'admno': 1208, 'name':'mannat bhatia','marks':89, 'fees': 4500} - ] -) +data = [ + (1101, 'rakesh', 56, 5656.56), + (1203, 'jatin jain', 56, 5666.56), + (1205, 'pushkar', 78, 5666.56), + (1206, 'arushi', 98, 4564.34), + (1208, 'mannat bhatia', 89, 4500), + (1234, 'unnati', 67, 3500.56), + (1245, 'Nikunj Tyagi', 68, 4500), + (5755, 'vishank', 89, 5000) +] +heading = ["admno", "name", "marks", "fees"] +df = pd.DataFrame(data, columns=heading) print(df) +df = df.append({'admno': 9999, 'name': 'ramji', 'marks': 99, + 'fees': 9999.99,'grade':'a'}, ignore_index=True) +print(df) \ No newline at end of file diff --git a/pandas/df_delete_row_col.py b/pandas/df_delete_row_col.py new file mode 100644 index 0000000..1679832 --- /dev/null +++ b/pandas/df_delete_row_col.py @@ -0,0 +1,20 @@ +import pandas as pd +data = [ + (1101, 'rakesh', 56, 5656.56), + (1203, 'jatin jain', 56, 5666.56), + (1205, 'pushkar', 78, 5666.56), + (1206, 'arushi', 98, 4564.34), + (1208, 'mannat bhatia', 89, 4500), + (1234, 'unnati', 67, 3500.56), + (1245, 'Nikunj Tyagi', 68, 4500), + (5755, 'vishank', 89, 5000) +] +heading = ["admno", "name", "marks", "fees"] +df = pd.DataFrame(data, columns=heading) +#df = df.drop('fees',axis=1) +#df = df.drop(columns=['marks','fees']) +#df = df.drop(['marks','fees'],axis=1) +#df.drop('fees',axis=1,inplace=True) +df =df.drop([1,2,3],axis=0) # delete rows +print(df) + diff --git a/pandas/df_index_label.py b/pandas/df_index_label.py new file mode 100644 index 0000000..13805cb --- /dev/null +++ b/pandas/df_index_label.py @@ -0,0 +1,20 @@ +import pandas as pd +data = [ + (1101, 'rakesh', 56, 5656.56), + (1203, 'jatin jain', 56, 5666.56), + (1205, 'pushkar', 78, 5666.56), + (1206, 'arushi', 98, 4564.34), +] +data1 = [ + + (1208, 'mannat bhatia', 89, 4500), + (1234, 'unnati', 67, 3500.56), + (1245, 'Nikunj Tyagi', 68, 4500), + (5755, 'vishank', 89, 5000) +] +heading = ["admno", "name", "marks", "fees"] +df = pd.DataFrame(data, columns=heading) +df1 = pd.DataFrame(data1, columns=heading) + +df2 = df.append(df1) # concatenation +print(df2) diff --git a/pandas/df_merge.py b/pandas/df_merge.py new file mode 100644 index 0000000..ca3260b --- /dev/null +++ b/pandas/df_merge.py @@ -0,0 +1,14 @@ +import pandas as pd + +right = pd.DataFrame({'admno': ['101', '102', '103', '104'], + 'Game': ['Cricket', 'BasketBall', 'Badminton', 'Swimming'], + 'Fee': [1200, 750, 800, 1500]}) +print(right['Fee'].count()) +print(right['Fee'].max()) +print(right['Fee'].min()) +print(right['Fee'].sum()) +print(right['Fee'].mean()) #average +print(right['Fee'].median()) #average +print(right['Fee'].std()) #standard daviation +print(right['Fee'].var()) #standard variance +print(right['Fee'].quantile()) # quantile of the values diff --git a/pandas/df_rename_Columns.py b/pandas/df_rename_Columns.py new file mode 100644 index 0000000..ca052cf --- /dev/null +++ b/pandas/df_rename_Columns.py @@ -0,0 +1,18 @@ +import pandas as pd +data = [ + (1101, 'rakesh', 56, 5656.56), + (1203, 'jatin jain', 56, 5666.56), + (1205, 'pushkar', 78, 5666.56), + (1206, 'arushi', 98, 4564.34), + (1208, 'mannat bhatia', 89, 4500), + (1234, 'unnati', 67, 3500.56), + (1245, 'Nikunj Tyagi', 68, 4500), + (5755, 'vishank', 89, 5000) +] +heading = ["admno", "name", "marks", "fees"] +df = pd.DataFrame(data, columns=heading) +#df =df.rename(columns={"fees":'Annual Fees'}) +#df = df.rename({'fees':'Yealy fees'},axis=1) +df = df.rename({'fees':'yealy fees', 'marks':'ut-2'}, axis=1) +#df.rename({'fees': 'yealy fees', 'marks': 'ut-2'}, axis=1,inplace=True) +print(df) diff --git a/pandas/df_saving.py b/pandas/df_saving.py new file mode 100644 index 0000000..8f7f523 --- /dev/null +++ b/pandas/df_saving.py @@ -0,0 +1,16 @@ +import pandas as pd +data = [ + (1101, 'rakesh', 56, 5656.56), + (1203, 'jatin jain', 56, 5666.56), + (1205, 'pushkar', 78, 5666.56), + (1206, 'arushi', 98, 4564.34), + (1208, 'mannat bhatia', 89, 4500), + (1234, 'unnati', 67, 3500.56), + (1245, 'Nikunj Tyagi', 68, 4500), + (5755, 'vishank', 89, 5000) +] +heading = ["admno", "name", "marks", "fees"] +df = pd.DataFrame(data, columns=heading) +#df.to_csv('student.csv',index=False) +df.to_excel('student_data.xlsx',"sheet-1", index=False) +print('Please check your file....') \ No newline at end of file diff --git a/pandas/index_label.py b/pandas/index_label.py new file mode 100644 index 0000000..a44c787 --- /dev/null +++ b/pandas/index_label.py @@ -0,0 +1,15 @@ +import pandas as pd +data = [ + (1101, 'rakesh', 56, 5656.56), + (1203, 'jatin jain', 56, 5666.56), + (1205, 'pushkar', 78, 5666.56), + (1206, 'arushi', 98, 4564.34), + (1208, 'mannat bhatia', 89, 4500), + (1234, 'unnati', 67, 3500.56), + (1245, 'Nikunj Tyagi', 68, 4500), + (5755, 'vishank', 89, 5000) +] +heading = ["admno", "name", "marks", "fees"] +df = pd.DataFrame(data, columns=heading) +df.set_index('admno') +print(df) \ No newline at end of file diff --git a/pandas/tempCodeRunnerFile.py b/pandas/tempCodeRunnerFile.py index 2233f99..f079489 100644 --- a/pandas/tempCodeRunnerFile.py +++ b/pandas/tempCodeRunnerFile.py @@ -1,4 +1 @@ -# create python pandas using Excel file -import pandas as pd -df = pd.read_excel("result.xls","result") -print(df) \ No newline at end of file +K0 \ No newline at end of file diff --git a/student.csv b/student.csv index 277c95e..ff8a5ed 100644 --- a/student.csv +++ b/student.csv @@ -1,5 +1,9 @@ -rollno,name,stream,fees -12,surendra,Humanities,2356 -13,Ashok Goyal,Humanities,2356 -15,Nipun,Humanities,2356 -22,Ayush Negi,Science,2356 \ No newline at end of file +admno,name,marks,fees +1101,rakesh,56,5656.56 +1203,jatin jain,56,5666.56 +1205,pushkar,78,5666.56 +1206,arushi,98,4564.34 +1208,mannat bhatia,89,4500.0 +1234,unnati,67,3500.56 +1245,Nikunj Tyagi,68,4500.0 +5755,vishank,89,5000.0 diff --git a/student_data.xlsx b/student_data.xlsx new file mode 100644 index 0000000000000000000000000000000000000000..7944d64d97f95fbb8b74d2cc6cf41b6720386a66 GIT binary patch literal 5668 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 literal 0 HcmV?d00001 diff --git a/webscraper/youtubeDownloader.py b/webscraper/youtubeDownloader.py index b855b37..f35c99a 100644 --- a/webscraper/youtubeDownloader.py +++ b/webscraper/youtubeDownloader.py @@ -4,5 +4,5 @@ # import shutil ydl_opts = {} with youtube_dl.YoutubeDL(ydl_opts) as ydl: - ydl.download(['https://www.youtube.com/watch?v=QaeXCar-NaM&t=2740s']) + ydl.download(['https://www.youtube.com/watch?v=WfGMYdalClU']) diff --git a/welcome.mp3 b/welcome.mp3 deleted file mode 100644 index eb89195f40890a342d9ade27a1544cb662bed685..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20352 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