import pandas as pd # διαβάζω σε DataFrame τα δεδομένα # το πρόγραμμα python πρέπει να βρίσκεται στον ίδιο φάκελο με το αρχείο GrCensus2011.csv # το αρχείο έχει επικεφαλίδα και διαχωριστή το χαρακτήρα ; # το data είναι μεταβλητή τύπου pandas DataFrame data=pd.read_csv('GrCensus2011.csv',sep=';') # ΑΡΧΗ: για κατανόηση λειτουργίας dataframe # τελεστής [] # θεσιακή αναφορά γραμμής, start, end-1, step data[0:5] # επιστρέφει dataframe από τη γραμμή 0 έως και την 4 με όλες τις στήλες # ονομαστική αναφορά στήλης data['descr'] data[['level','descr','btotal']] #λίστα ονομάτων στηλών # θεσιακή αναφορά γραμμής και ονομαστική αναφορά στήλης data[0:5]['descr'] # επιστρέφει τη στήλη descr του προηγούμενου dataframe από τη γραμμή 0 έως και την 4 # θεσιακή αναφορά γραμμής 1 και ονομαστική αναφορά στήλης data[0:1]['descr'] # χρήση loc αναφορά σε ετικέτες γραμμής, ετικέτες στήλης # ετικέτα γραμμής= index, ετικέτα στήλης=columns # data.loc[rows,columns] # rows, columns: slice (start, stop, step) | λίστα συγκεκριμένων ετικετών | κριτήριο data.loc[:,] # όλες οι γραμμές, όλες οι στήλες data.loc[1,'descr'] # γραμμή με index 1 και column name descr data.loc[1:5,'descr'] # γραμμή με index 1 έως και 5 και column name descr data.loc[1:5,'level':'descr'] # γραμμές με index 1 έως και 5 και συνεχόμενα column names από level έως descr data.loc[1:5,['level','descr','mtotal']] # γραμμές με index 1 έως και 5 και column names συγκεκριμένα μη συνεχόμενα data.loc[:,'mtotal'].max() # μέγιστο ολόκληρης στήλης data.loc[:,['btotal','mtotal','wtotal']].sum() # άθροισμα κάθετο συγκεκριμένων στηλών data.loc[data['level']==4,] # όλες οι στήλες περιφερειακών ενοτήτων με κριτήριο στη στήλη level==4 # ΤΕΛΟΣ: κατανόηση λειτουργίας dataframe # κριτήριο για δημοτικές ενότητες: στήλη level τιμή 6 print("μέγιστο συνολικό πληθυσμό δημοτικής ενότητας ανεξαρτήτου φύλου και ηλικίας: ",end='') # με loc print(data.loc[data['level']==6,'btotal'].max()) # με τελεστή [] print(data[data['level']==6]['btotal'].max()) # μέσο όρο του πληθυσμού αμφοτέρων φύλων ηλικίας 30 ετών και άνω όλων των δημοτικών ενοτήτων # sum με axis=1 αθροίζω οριζόντια τις γραμμές print(data.loc[data['level']==6,'b30to34':'b85plus'].sum(axis=1).mean())