{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Exercise 1.4: Adding data to a data frame\n",
"\n",
"
"
]
},
{
"cell_type": "code",
"execution_count": 1,
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"\n",
"\n",
"We continue working with the frog tongue data. Recall that the header comments in the data file contained information about the frogs."
]
},
{
"cell_type": "code",
"execution_count": 2,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"# These data are from the paper,\n",
"# Kleinteich and Gorb, Sci. Rep., 4, 5225, 2014.\n",
"# It was featured in the New York Times.\n",
"# http://www.nytimes.com/2014/08/25/science/a-frog-thats-a-living-breathing-pac-man.html\n",
"#\n",
"# The authors included the data in their supplemental information.\n",
"#\n",
"# Importantly, the ID refers to the identifites of the frogs they tested.\n",
"# I: adult, 63 mm snout-vent-length (SVL) and 63.1 g body weight,\n",
"# Ceratophrys cranwelli crossed with Ceratophrys cornuta\n",
"# II: adult, 70 mm SVL and 72.7 g body weight,\n",
"# Ceratophrys cranwelli crossed with Ceratophrys cornuta\n",
"# III: juvenile, 28 mm SVL and 12.7 g body weight, Ceratophrys cranwelli\n",
"# IV: juvenile, 31 mm SVL and 12.7 g body weight, Ceratophrys cranwelli\n",
"date,ID,trial number,impact force (mN),impact time (ms),impact force / body weight,adhesive force (mN),time frog pulls on target (ms),adhesive force / body weight,adhesive impulse (N-s),total contact area (mm2),contact area without mucus (mm2),contact area with mucus / contact area without mucus,contact pressure (Pa),adhesive strength (Pa)\n",
"2013_02_26,I,3,1205,46,1.95,-785,884,1.27,-0.290,387,70,0.82,3117,-2030\n",
"2013_02_26,I,4,2527,44,4.08,-983,248,1.59,-0.181,101,94,0.07,24923,-9695\n",
"2013_03_01,I,1,1745,34,2.82,-850,211,1.37,-0.157,83,79,0.05,21020,-10239\n",
"2013_03_01,I,2,1556,41,2.51,-455,1025,0.74,-0.170,330,158,0.52,4718,-1381\n",
"2013_03_01,I,3,493,36,0.80,-974,499,1.57,-0.423,245,216,0.12,2012,-3975\n"
]
}
],
"source": [
"!head -20 ../data/frog_tongue_adhesion.csv"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"So, each frog has associated with it an age (adult or juvenile), snout-vent-length (SVL), body weight, and species (either cross or *cranwelli*). For a tidy data frame, we should have a column for each of these values. Your task is to load in the data, and then add these columns to the data frame. For convenience, here is a data frame with data about each frog."
]
},
{
"cell_type": "code",
"execution_count": 3,
"metadata": {},
"outputs": [],
"source": [
"df_frog = pd.DataFrame(\n",
" data={\n",
" \"ID\": [\"I\", \"II\", \"III\", \"IV\"],\n",
" \"age\": [\"adult\", \"adult\", \"juvenile\", \"juvenile\"],\n",
" \"SVL (mm)\": [63, 70, 28, 31],\n",
" \"weight (g)\": [63.1, 72.7, 12.7, 12.7],\n",
" \"species\": [\"cross\", \"cross\", \"cranwelli\", \"cranwelli\"],\n",
" }\n",
")"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"Note: There are lots of ways to solve this problem. This is a good exercise in searching through the [Pandas documentation](https://pandas.pydata.org/pandas-docs/stable/) and other online resources, such as [Stack Overflow](https://stackoverflow.com/questions). Remember, much of your programming efforts are spent searching through documentation and the internet.\n",
"\n",
"Finally, as a fun challenge, see if you can highlight the strike with the highest impact force for each frog in the data frame."
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
" "
]
}
],
"metadata": {
"anaconda-cloud": {},
"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.11.4"
}
},
"nbformat": 4,
"nbformat_minor": 4
}