Ci-dessous, les différences entre deux révisions de la page.
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/09 23:01] Francesco Beretta [Histogram (p.5)] |
python:first_course_statistics [2016/10/17 07:58] Francesco Beretta [Descriptive statistics] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
+ | ====== 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]] | ||
+ | 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) ====== | ====== Eruptions of the "Old Faithful" geyser (p.5) ====== | ||
+ | \\ | ||
===== Histogram (p.5) ===== | ===== Histogram (p.5) ===== | ||
- | |||
- | FB: this script works fine ! | ||
<code python> | <code python> | ||
Ligne 22: | Ligne 27: | ||
</code> | </code> | ||
+ | |||
+ | \\ | ||
+ | |||
+ | ===== 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) ====== | ====== International adoption rates (p.13) ====== | ||