Outils pour utilisateurs

Outils du site


python:first_course_statistics

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
Prochaine révision Les deux révisions suivantes
python:first_course_statistics [2016/10/08 09:11]
Francesco Beretta [Eruptions of the Old Faithful geyser (p.5)]
python:first_course_statistics [2016/10/17 07:58]
Francesco Beretta [Descriptive statistics]
Ligne 1: Ligne 1:
-====== Lessons ====== 
  
 +====== General instructions ======
  
 +Read following important documentation about:
 +  * pandas [[http://​pandas.pydata.org/​pandas-docs/​stable/​dsintro.html#​dataframe|dataframes]]
 +  * [[http://​matplotlib.org/​api/​pyplot_summary.html|matplotlib.pyplot]]
  
-===== Eruptions of the "Old Faithful"​ geyser (p.5) =====+Save your scripts in a folder inside the data folder, calling the script folder '​my_scripts'​ or whaterver. If  '​my-scripts'​ is set as your [[python:​generic_features#​get_the_current_working_directory_address|current working directory]],​ then the data files are available under this address '​../​[data file]',​ for instantce: '​../​geyser1.TAB'​ 
 +\\ 
 +====== Eruptions of the "Old Faithful"​ geyser (p.5) ======
  
 +\\
  
-==== Histogram (p.5) ====+===== Histogram (p.5) =====
  
 <code python> <code python>
-# fake code – to be deleted +import pandas as pd 
-import ​csv +import ​matplotlib.pyplot as plt 
-filename ​= 'ch02-data.csv' +gys1 pd.DataFrame(pd.read_csv('../​geyser1.TAB', '​\t'​)
-f = open(filename+g_int gys1['​Interval'​
-data = [] +ax plt.gca() 
-reader ​csv.reader(f+ax.hist(g_int,​ bins=20, color='​r'​) 
-header ​reader.next() +ax.set_xlabel('​Intereruption time'
-data = [row for row in reader] +ax.set_ylabel('​Frequency'​) 
-for datarow in data: +ax.set_title('​Histogram'​) 
-    print datarow+plt.show() ​
 </​code>​ </​code>​
  
  
-===== International adoption rates (p.13) =====+\\ 
 + 
 +===== Boxplot (p. 6) ===== 
 + 
 +<code python>​ 
 +import matplotlib.pyplot as plt 
 +import pandas as pd 
 +gysr1_boxplot = pd.read_csv('​...\geyser1.TAB',​ '​\t'​) 
 +data_gysr1 = gysr1_boxplot['​Interval'​] 
 +plt.boxplot(data_gysr1) 
 +ax = plt.gca() 
 +ax.set_xlabel('​222 cases'​) 
 +ax.set_ylabel('​Interruption time ( minutes'​) 
 +ax.set_title('​Box and Whisker Plot'​) 
 +plt.show() 
 +</​code>​ 
 + 
 + 
 +\\ 
 + 
 +===== ScatterPlot (p. 7) ===== 
 + 
 +AB: Put face- and edgecolor to change both of them. You can also have two different colors for the in- and outside of each dot. 
 + 
 +<code python>​ 
 +import matplotlib.pyplot as plt 
 +import pandas as pd 
 +geysr1_scatterplot = pd.read_csv('​...\geyser1.TAB',​ '​\t'​) 
 +geysr1_data_Xax = geysr1_scatterplot['​Duration'​] 
 +geysr1_data_Yax = geysr1_scatterplot['​Interval'​] 
 +plt.scatter(geysr1_data_Xax,​ geysr1_data_Yax,​ facecolor='​y',​ edgecolor='​y'​) 
 +ax = plt.gca() 
 +ax.set_xlabel('​Eruption duration time (minutes)'​) 
 +ax.set_ylabel('​Interuption time (minutes)'​) 
 +ax.set_title('​Scatter Plot of INTERVAL vs DURATION'​) 
 +plt.show() 
 +</​code>​ 
 + 
 +===== Descriptive statistics (p.9) ===== 
 + 
 +Note: try different examples, e.g. the whole population or only those where '​Duration'​ <= 3, the whole dataframe 
 + 
 +[[http://​pandas.pydata.org/​pandas-docs/​stable/​basics.html#​descriptive-statistics|doc]] – [[http://​www.marsja.se/​pandas-python-descriptive-statistics/​|example]] 
 + 
 +<code python>​ 
 +import pandas as pd 
 +gysr1 = pd.read_csv('​../​geyser1.tab',​ '​\t'​) 
 +gysr1['​Duration'​][gysr1['​Duration'​] <= 3].describe() 
 +</​code>​ 
 + 
 + 
 +===== Boxplot (p.9) ===== 
 + 
 +Selecting rows in a dataframe: [[http://​pandas.pydata.org/​pandas-docs/​stable/​indexing.html#​the-where-method-and-masking|doc]] / [[http://​stackoverflow.com/​questions/​17071871/​select-rows-from-a-dataframe-based-on-values-in-a-column-in-pandas|example]] 
 + 
 +<code python>​ 
 +import matplotlib.pyplot as plt 
 +import pandas as pd 
 +gysr1 = pd.read_csv('​../​geyser1.tab',​ '​\t'​) 
 +gysr1_inf3 = gysr1.loc[gysr1['​Duration'​] <= 3] 
 +gysr1_sup3 = gysr1.loc[gysr1['​Duration'​] > 3] 
 +plt.boxplot([gysr1_inf3['​Interval'​],​gysr1_sup3['​Interval'​]],​ labels= ['​inf3','​sup3'​]) 
 +</​code>​ 
 + 
 +====== International adoption rates (p.13) ​======
  
python/first_course_statistics.txt · Dernière modification: 2017/09/26 08:54 par Francesco Beretta