{
"cells": [
{
"cell_type": "code",
"execution_count": 24,
"id": "e2daced3-45d5-40ba-a2d6-88b3d1c01326",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" col1 | \n",
" col2 | \n",
" col3 | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 1 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 2 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 3 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
" 4 | \n",
" 0.0 | \n",
" 0.0 | \n",
" 0.0 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" col1 col2 col3\n",
"0 0.0 0.0 0.0\n",
"1 0.0 0.0 0.0\n",
"2 0.0 0.0 0.0\n",
"3 0.0 0.0 0.0\n",
"4 0.0 0.0 0.0"
]
},
"execution_count": 24,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 1. Using any method covered in the class, create a dataframe with 5 rows, and 3 columns named col1, col2, col3\n",
"# filled with zero values. \n",
"import pandas as pd\n",
"import numpy as np\n",
"\n",
"df = pd.DataFrame(np.zeros((5,3)),columns=[f'col{x}' for x in [1,2,3]])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 25,
"id": "db4e18cb-44a8-43fc-bf1a-78c8604c0792",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" date | \n",
" AMZN | \n",
" FB | \n",
"
\n",
" \n",
" \n",
" \n",
" 0 | \n",
" 2018-01-01 | \n",
" 1.000000 | \n",
" 1.000000 | \n",
"
\n",
" \n",
" 1 | \n",
" 2018-01-08 | \n",
" 1.061881 | \n",
" 0.959968 | \n",
"
\n",
" \n",
" 2 | \n",
" 2018-01-15 | \n",
" 1.053240 | \n",
" 0.970243 | \n",
"
\n",
" \n",
" 3 | \n",
" 2018-01-22 | \n",
" 1.140676 | \n",
" 1.016858 | \n",
"
\n",
" \n",
" 4 | \n",
" 2018-01-29 | \n",
" 1.163374 | \n",
" 1.018357 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 100 | \n",
" 2019-12-02 | \n",
" 1.425061 | \n",
" 1.075997 | \n",
"
\n",
" \n",
" 101 | \n",
" 2019-12-09 | \n",
" 1.432660 | \n",
" 1.038855 | \n",
"
\n",
" \n",
" 102 | \n",
" 2019-12-16 | \n",
" 1.453455 | \n",
" 1.104094 | \n",
"
\n",
" \n",
" 103 | \n",
" 2019-12-23 | \n",
" 1.521226 | \n",
" 1.113728 | \n",
"
\n",
" \n",
" 104 | \n",
" 2019-12-30 | \n",
" 1.503360 | \n",
" 1.098475 | \n",
"
\n",
" \n",
"
\n",
"
105 rows × 3 columns
\n",
"
"
],
"text/plain": [
" date AMZN FB\n",
"0 2018-01-01 1.000000 1.000000\n",
"1 2018-01-08 1.061881 0.959968\n",
"2 2018-01-15 1.053240 0.970243\n",
"3 2018-01-22 1.140676 1.016858\n",
"4 2018-01-29 1.163374 1.018357\n",
".. ... ... ...\n",
"100 2019-12-02 1.425061 1.075997\n",
"101 2019-12-09 1.432660 1.038855\n",
"102 2019-12-16 1.453455 1.104094\n",
"103 2019-12-23 1.521226 1.113728\n",
"104 2019-12-30 1.503360 1.098475\n",
"\n",
"[105 rows x 3 columns]"
]
},
"execution_count": 25,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 2. read stocks.csv into a dataframe using only date, AMZN, and FB columns\n",
"df=pd.read_csv('files/stocks.csv',usecols=['date','AMZN','FB'],parse_dates=['date'])\n",
"df"
]
},
{
"cell_type": "code",
"execution_count": 29,
"id": "2d70e13c-f5bc-49d7-a994-4892cc55e4d4",
"metadata": {},
"outputs": [],
"source": [
"# 3. use pandas to convert Sample.xlsx, Sheet1 to a csv file, excluding the index\n",
"df = pd.read_excel('files/Sample.xlsx',sheet_name='Sheet1')\n",
"df.to_csv('files/convert_out.csv',index=False)"
]
},
{
"cell_type": "code",
"execution_count": 15,
"id": "addf673f-45ce-4b62-aacc-18877aabb5b8",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" date | \n",
" AMZN | \n",
" FB | \n",
"
\n",
" \n",
" \n",
" \n",
" 9 | \n",
" 2018-03-05 | \n",
" 1.284549 | \n",
" 0.991330 | \n",
"
\n",
" \n",
" 10 | \n",
" 2018-03-12 | \n",
" 1.278683 | \n",
" 0.990581 | \n",
"
\n",
" \n",
" 16 | \n",
" 2018-04-23 | \n",
" 1.279447 | \n",
" 0.929034 | \n",
"
\n",
" \n",
" 17 | \n",
" 2018-04-30 | \n",
" 1.286224 | \n",
" 0.945197 | \n",
"
\n",
" \n",
" 18 | \n",
" 2018-05-07 | \n",
" 1.304091 | \n",
" 1.000749 | \n",
"
\n",
" \n",
" ... | \n",
" ... | \n",
" ... | \n",
" ... | \n",
"
\n",
" \n",
" 100 | \n",
" 2019-12-02 | \n",
" 1.425061 | \n",
" 1.075997 | \n",
"
\n",
" \n",
" 101 | \n",
" 2019-12-09 | \n",
" 1.432660 | \n",
" 1.038855 | \n",
"
\n",
" \n",
" 102 | \n",
" 2019-12-16 | \n",
" 1.453455 | \n",
" 1.104094 | \n",
"
\n",
" \n",
" 103 | \n",
" 2019-12-23 | \n",
" 1.521226 | \n",
" 1.113728 | \n",
"
\n",
" \n",
" 104 | \n",
" 2019-12-30 | \n",
" 1.503360 | \n",
" 1.098475 | \n",
"
\n",
" \n",
"
\n",
"
88 rows × 3 columns
\n",
"
"
],
"text/plain": [
" date AMZN FB\n",
"9 2018-03-05 1.284549 0.991330\n",
"10 2018-03-12 1.278683 0.990581\n",
"16 2018-04-23 1.279447 0.929034\n",
"17 2018-04-30 1.286224 0.945197\n",
"18 2018-05-07 1.304091 1.000749\n",
".. ... ... ...\n",
"100 2019-12-02 1.425061 1.075997\n",
"101 2019-12-09 1.432660 1.038855\n",
"102 2019-12-16 1.453455 1.104094\n",
"103 2019-12-23 1.521226 1.113728\n",
"104 2019-12-30 1.503360 1.098475\n",
"\n",
"[88 rows x 3 columns]"
]
},
"execution_count": 15,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# 4. Using the dataframe created in question 2, create another dataframe containing only rows where\n",
"# the price of AMZN is greater than 1.25\n",
"df2 = df[df.AMZN > 1.25]\n",
"df2"
]
},
{
"cell_type": "code",
"execution_count": 18,
"id": "ded80d46-7411-47b5-8c2d-99cfa63abda4",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" date | \n",
" AMZN | \n",
" FB | \n",
"
\n",
" \n",
" \n",
" \n",
" 9 | \n",
" 2018-03-05 | \n",
" 1.284549 | \n",
" 0.991330 | \n",
"
\n",
" \n",
" 10 | \n",
" 2018-03-12 | \n",
" 1.278683 | \n",
" 0.990581 | \n",
"
\n",
" \n",
" 16 | \n",
" 2018-04-23 | \n",
" 1.279447 | \n",
" 0.929034 | \n",
"
\n",
" \n",
" 17 | \n",
" 2018-04-30 | \n",
" 1.286224 | \n",
" 0.945197 | \n",
"
\n",
" \n",
" 18 | \n",
" 2018-05-07 | \n",
" 1.304091 | \n",
" 1.000749 | \n",
"
\n",
" \n",
" 19 | \n",
" 2018-05-14 | \n",
" 1.280871 | \n",
" 0.977683 | \n",
"
\n",
" \n",
" 20 | \n",
" 2018-05-21 | \n",
" 1.309981 | \n",
" 0.989671 | \n",
"
\n",
" \n",
" 21 | \n",
" 2018-05-28 | \n",
" 1.335519 | \n",
" 1.038212 | \n",
"
\n",
" \n",
" 22 | \n",
" 2018-06-04 | \n",
" 1.370055 | \n",
" 1.012042 | \n",
"
\n",
" \n",
" 23 | \n",
" 2018-06-11 | \n",
" 1.396074 | \n",
" 1.048167 | \n",
"
\n",
" \n",
" 24 | \n",
" 2018-06-18 | \n",
" 1.395830 | \n",
" 1.079690 | \n",
"
\n",
" \n",
" 25 | \n",
" 2018-06-25 | \n",
" 1.382918 | \n",
" 1.039979 | \n",
"
\n",
" \n",
" 26 | \n",
" 2018-07-02 | \n",
" 1.391729 | \n",
" 1.087664 | \n",
"
\n",
" \n",
" 27 | \n",
" 2018-07-09 | \n",
" 1.475039 | \n",
" 1.109553 | \n",
"
\n",
" \n",
" 28 | \n",
" 2018-07-16 | \n",
" 1.475584 | \n",
" 1.123575 | \n",
"
\n",
" \n",
" 29 | \n",
" 2018-07-23 | \n",
" 1.478489 | \n",
" 0.935991 | \n",
"
\n",
" \n",
" 30 | \n",
" 2018-07-30 | \n",
" 1.483387 | \n",
" 0.951458 | \n",
"
\n",
" \n",
" 31 | \n",
" 2018-08-06 | \n",
" 1.534650 | \n",
" 0.964731 | \n",
"
\n",
" \n",
" 32 | \n",
" 2018-08-13 | \n",
" 1.531331 | \n",
" 0.930158 | \n",
"
\n",
" \n",
" 33 | \n",
" 2018-08-20 | \n",
" 1.550181 | \n",
" 0.934707 | \n",
"
\n",
" \n",
" 34 | \n",
" 2018-08-27 | \n",
" 1.637494 | \n",
" 0.940487 | \n",
"
\n",
" \n",
" 35 | \n",
" 2018-09-03 | \n",
" 1.588159 | \n",
" 0.872572 | \n",
"
\n",
" \n",
" 36 | \n",
" 2018-09-10 | \n",
" 1.602901 | \n",
" 0.868718 | \n",
"
\n",
" \n",
" 37 | \n",
" 2018-09-17 | \n",
" 1.558008 | \n",
" 0.871983 | \n",
"
\n",
" \n",
" 38 | \n",
" 2018-09-24 | \n",
" 1.629595 | \n",
" 0.880171 | \n",
"
\n",
" \n",
" 39 | \n",
" 2018-10-01 | \n",
" 1.537376 | \n",
" 0.842012 | \n",
"
\n",
" \n",
" 40 | \n",
" 2018-10-08 | \n",
" 1.455172 | \n",
" 0.822799 | \n",
"
\n",
" \n",
" 41 | \n",
" 2018-10-15 | \n",
" 1.435174 | \n",
" 0.824458 | \n",
"
\n",
" \n",
" 42 | \n",
" 2018-10-22 | \n",
" 1.336552 | \n",
" 0.778004 | \n",
"
\n",
" \n",
" 43 | \n",
" 2018-10-29 | \n",
" 1.355037 | \n",
" 0.804656 | \n",
"
\n",
" \n",
" 44 | \n",
" 2018-11-05 | \n",
" 1.393194 | \n",
" 0.775809 | \n",
"
\n",
" \n",
" 45 | \n",
" 2018-11-12 | \n",
" 1.296362 | \n",
" 0.746749 | \n",
"
\n",
" \n",
" 47 | \n",
" 2018-11-26 | \n",
" 1.375083 | \n",
" 0.752529 | \n",
"
\n",
" \n",
" 48 | \n",
" 2018-12-03 | \n",
" 1.325423 | \n",
" 0.735456 | \n",
"
\n",
" \n",
" 49 | \n",
" 2018-12-10 | \n",
" 1.295141 | \n",
" 0.770993 | \n",
"
\n",
" \n",
" 52 | \n",
" 2018-12-31 | \n",
" 1.281701 | \n",
" 0.738293 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" date AMZN FB\n",
"9 2018-03-05 1.284549 0.991330\n",
"10 2018-03-12 1.278683 0.990581\n",
"16 2018-04-23 1.279447 0.929034\n",
"17 2018-04-30 1.286224 0.945197\n",
"18 2018-05-07 1.304091 1.000749\n",
"19 2018-05-14 1.280871 0.977683\n",
"20 2018-05-21 1.309981 0.989671\n",
"21 2018-05-28 1.335519 1.038212\n",
"22 2018-06-04 1.370055 1.012042\n",
"23 2018-06-11 1.396074 1.048167\n",
"24 2018-06-18 1.395830 1.079690\n",
"25 2018-06-25 1.382918 1.039979\n",
"26 2018-07-02 1.391729 1.087664\n",
"27 2018-07-09 1.475039 1.109553\n",
"28 2018-07-16 1.475584 1.123575\n",
"29 2018-07-23 1.478489 0.935991\n",
"30 2018-07-30 1.483387 0.951458\n",
"31 2018-08-06 1.534650 0.964731\n",
"32 2018-08-13 1.531331 0.930158\n",
"33 2018-08-20 1.550181 0.934707\n",
"34 2018-08-27 1.637494 0.940487\n",
"35 2018-09-03 1.588159 0.872572\n",
"36 2018-09-10 1.602901 0.868718\n",
"37 2018-09-17 1.558008 0.871983\n",
"38 2018-09-24 1.629595 0.880171\n",
"39 2018-10-01 1.537376 0.842012\n",
"40 2018-10-08 1.455172 0.822799\n",
"41 2018-10-15 1.435174 0.824458\n",
"42 2018-10-22 1.336552 0.778004\n",
"43 2018-10-29 1.355037 0.804656\n",
"44 2018-11-05 1.393194 0.775809\n",
"45 2018-11-12 1.296362 0.746749\n",
"47 2018-11-26 1.375083 0.752529\n",
"48 2018-12-03 1.325423 0.735456\n",
"49 2018-12-10 1.295141 0.770993\n",
"52 2018-12-31 1.281701 0.738293"
]
},
"execution_count": 18,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"# Using the dataframe created in question 4, display rows where AMZN is greater than FB and date is before 2019\n",
"# hint: the column needs to be date type and use datetime module to compare against\n",
"\n",
"import datetime as dt\n",
"df2[df2.date < dt.datetime(2019,1,1)]"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "f59d8ce6-2949-4199-9a3a-a2b6ab9e74e4",
"metadata": {},
"outputs": [],
"source": []
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.8.13"
}
},
"nbformat": 4,
"nbformat_minor": 5
}