Τα δεδομένα που έχουμε μπορούν να παράγουν νέες στήλες οι οποίες θα είναι χρήσιμες στην επεξεργασία που θα κάνουμε στην συνέχεια. Προς το παρόν θα φτιάξουμε τρεις νέες στήλες. Θα φτιάξουμε μια στήλη με το όνομα ΣΚΟΡ_ΣΥΝ στην οποία θα αποθηκεύουμε το άθροισμα των γκολ κάθε αγωνιστικής, δηλαδή το άθροισμα των γκολ της στήλης ΣΚΟΡ_ΓΗΠ + ΣΚΟΡ_ΦΙΛ. Θα φτιάξουμε μια νέα στήλη που θα την ονομάσουμε ΑΠΟΤ, το οποίο θα είναι το αποτέλεσμα του παιχνιδιού και θα παίρνει 3 τιμές, (Α για το Άσσος η Δ για το Διπλό ή Χ για την ισοπαλία) 1 ή 2 ή Χ ανάλογα με το αποτέλεσμα κάθε αγώνα. Τέλος θα φτιάξουμε μια στήλη ΑΠΟΤ_ΑΡ, δηλαδή το αποτέλεσμα με αριθμητική τιμή. Επειδή οι διακριτές τιμές Α, Δ, Χ ίσως σε μελλοντική επεξεργασία δεν μας δίνουν επαρκή αποτελέσματα όταν επιχειρήσουμε να δούμε την συσχέτιση μεταξύ των μεταβλητών, θα αποθηκεύσω το αποτέλεσμα κάθε αγώνα και σε μια επιπλέον μορφή με αριθμητική προέκταση. Αυθαίρετα θα επιλέξω όταν το ματς έρχεται άσσος στο ΑΠΟΤ_ΑΡ να αποθηκεύω το 0, όταν το ματς έρχεται Χ να αποθηκεύω 1 και όταν το ματς έρχεται 2, να αποθηκεύω στην στήλη την τιμή 2. Οι νέες στήλες μπορούν είτε να δημιουργηθούν πάνω στο ίδιο dataframe df, είτε μπορούν να δημιουργηθούν σε ένα νέο dataframe. Θα επιλέξω να τις δημιουργήσω σε ένα νέο με το όνομα games έτσι ώστε να διατηρήσω αμετάβλητα τα αρχικά δεδομένα για πιθανή μελλοντική χρήση. Έχουμε λοιπόν:
α. games = df #Δημιουργία ενός πανομοιότυπου dataframe με το όνομα games
β. games[‘ΣΚΟΡ_ΣΥΝ’] = games[‘ΣΚΟΡ_ΓΗΠ’] + games[‘ΣΚΟΡ_ΦΙΛ’] #Δημιουργία μιας νέας στήλης στο games που θα περιέχει το άθροισμα των άλλων δύο στηλών με όνομα ΣΚΟΡ_ΣΥΝ
γ. Αν τώρα γράψουμε games, θα πάρουμε ως αποτέλεσμα:
Βλέπουμε ότι έχει προστεθεί η νέα στήλη ΣΚΟΡ_ΣΥΝ και πως σε κάθε γραμμή έχει το άθροισμα των δύο προηγούμενων στηλών.
Τώρα δίνω αρχική τιμή σε όλα τα ματς το αποτέλεσμα Χ
games[‘ΑΠΟΤ’]=’Χ’
games[‘ΑΠΟΤ_ΑΡ’] = 1
Και κατόπιν αν το σκορ του Γηπεδούχου είναι μεγαλύτερο του σκορ του Φιλοξενούμενου τότε αλλάζω το αποτέλεσμα σε Άσσο, σε αντίθετη περίπτωση το κάνω Διπλό και για τις δύο στήλες σύμφωνα με αυτά που έχουμε προδιαγράψει.
games[‘ΑΠΟΤ’] = np.where(games[‘ΣΚΟΡ_ΓΗΠ’]>games[‘ΣΚΟΡ_ΦΙΛ’],’Α’, games[‘ΑΠΟΤ’])
games[‘ΑΠΟΤ’] = np.where(games[‘ΣΚΟΡ_ΓΗΠ’]<games[‘ΣΚΟΡ_ΦΙΛ’],’Δ’, games[‘ΑΠΟΤ’])
games[‘ΑΠΟΤ_ΑΡ’] = np.where(games[‘ΣΚΟΡ_ΓΗΠ’]>games[‘ΣΚΟΡ_ΦΙΛ’], 0, games[‘ΑΠΟΤ_ΑΡ’])
games[‘ΑΠΟΤ_ΑΡ’] = np.where(games[‘ΣΚΟΡ_ΓΗΠ’]<games[‘ΣΚΟΡ_ΦΙΛ’], 2, games[‘ΑΠΟΤ_ΑΡ’])
Αν τώρα ελέγξω το dataframe μου θα πάρω: games
Το παραπάνω dataframe φαίνεται πολύ ωραίο για περαιτέρω επεξεργασία. Ωστόσο κάθε φορά που θα χρειάζεται να κάνουμε επιπλέον εργασίες, θα πρέπει να τρέχει όλος ο κώδικας που έχουμε γράψει ως τώρα για να παράγουμε το dataframe games και να το φτιάχνουμε στην μορφή που το έχουμε. Για να μην τρέχουμε ξανά και ξανά όλο το κώδικα, μπορούμε να το αποθηκεύσουμε στην μορφή που το έχουμε φέρει ως τώρα με ένα νέο όνομα (Greekf.csv) και από εδώ και πέρα να ανοίγουμε αυτό το αρχείο και να συνεχίζουμε την επεξεργασία.
Η αποθήκευση γίνεται με την εντολή:
games.to_csv(‘Greekf.csv’)
και αυτόματα στον ενεργό μας φάκελο δημιουργείται και αποθηκεύεται ένα αρχείο csv που έχει το τελικό dataframe που έχουμε φτιάξει με το όνομα games με όλες τις επιπλέον στήλες που έχουμε εισαγάγει.