{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercise 3.3: 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": [ "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Solution\n", "\n", "
" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The most direct way is to use [built-in pd.merge() function](https://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.merge.html). This function finds a common column between two `DataFrames`, and then uses that column to merge them, filling in values that match in the common column. This is exactly what we want." ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Load the data\n", "df = pd.read_csv('data/frog_tongue_adhesion.csv', comment='#')\n", "\n", "# Perform merge\n", "df = df.merge(df_frog)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's look at the `DataFrame` to make sure it has what we expect." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
dateIDtrial numberimpact force (mN)impact time (ms)impact force / body weightadhesive force (mN)time frog pulls on target (ms)adhesive force / body weightadhesive impulse (N-s)total contact area (mm2)contact area without mucus (mm2)contact area with mucus / contact area without mucuscontact pressure (Pa)adhesive strength (Pa)ageSVL (mm)weight (g)species
02013_02_26I31205461.95-7858841.27-0.290387700.823117-2030adult6363.1cross
12013_02_26I42527444.08-9832481.59-0.181101940.0724923-9695adult6363.1cross
22013_03_01I11745342.82-8502111.37-0.15783790.0521020-10239adult6363.1cross
32013_03_01I21556412.51-45510250.74-0.1703301580.524718-1381adult6363.1cross
42013_03_01I3493360.80-9744991.57-0.4232452160.122012-3975adult6363.1cross
\n", "
" ], "text/plain": [ " date ID trial number impact force (mN) impact time (ms) \\\n", "0 2013_02_26 I 3 1205 46 \n", "1 2013_02_26 I 4 2527 44 \n", "2 2013_03_01 I 1 1745 34 \n", "3 2013_03_01 I 2 1556 41 \n", "4 2013_03_01 I 3 493 36 \n", "\n", " impact force / body weight adhesive force (mN) \\\n", "0 1.95 -785 \n", "1 4.08 -983 \n", "2 2.82 -850 \n", "3 2.51 -455 \n", "4 0.80 -974 \n", "\n", " time frog pulls on target (ms) adhesive force / body weight \\\n", "0 884 1.27 \n", "1 248 1.59 \n", "2 211 1.37 \n", "3 1025 0.74 \n", "4 499 1.57 \n", "\n", " adhesive impulse (N-s) total contact area (mm2) \\\n", "0 -0.290 387 \n", "1 -0.181 101 \n", "2 -0.157 83 \n", "3 -0.170 330 \n", "4 -0.423 245 \n", "\n", " contact area without mucus (mm2) \\\n", "0 70 \n", "1 94 \n", "2 79 \n", "3 158 \n", "4 216 \n", "\n", " contact area with mucus / contact area without mucus \\\n", "0 0.82 \n", "1 0.07 \n", "2 0.05 \n", "3 0.52 \n", "4 0.12 \n", "\n", " contact pressure (Pa) adhesive strength (Pa) age SVL (mm) weight (g) \\\n", "0 3117 -2030 adult 63 63.1 \n", "1 24923 -9695 adult 63 63.1 \n", "2 21020 -10239 adult 63 63.1 \n", "3 4718 -1381 adult 63 63.1 \n", "4 2012 -3975 adult 63 63.1 \n", "\n", " species \n", "0 cross \n", "1 cross \n", "2 cross \n", "3 cross \n", "4 cross " ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we can highlight the strike with the highest impact force for each frog. One way to do this is to write a function that returns an entire data frame with the same index and columns as `df` where each entry contains a formatting string like `'background-color: lightgray'`, and then use `df.style.apply()` with the `axis=None` kwarg." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 dateIDtrial numberimpact force (mN)impact time (ms)impact force / body weightadhesive force (mN)time frog pulls on target (ms)adhesive force / body weightadhesive impulse (N-s)total contact area (mm2)contact area without mucus (mm2)contact area with mucus / contact area without mucuscontact pressure (Pa)adhesive strength (Pa)ageSVL (mm)weight (g)species
02013_02_26I31205461.950000-7858841.270000-0.290000387700.8200003117-2030adult6363.100000cross
12013_02_26I42527444.080000-9832481.590000-0.181000101940.07000024923-9695adult6363.100000cross
22013_03_01I11745342.820000-8502111.370000-0.15700083790.05000021020-10239adult6363.100000cross
32013_03_01I21556412.510000-45510250.740000-0.1700003301580.5200004718-1381adult6363.100000cross
42013_03_01I3493360.800000-9744991.570000-0.4230002452160.1200002012-3975adult6363.100000cross
52013_03_01I42276313.680000-5929690.960000-0.1760003411060.6900006676-1737adult6363.100000cross
62013_03_05I1556430.900000-5128350.830000-0.2850003591100.6900001550-1427adult6363.100000cross
72013_03_05I21928463.110000-8045081.300000-0.2850002461780.2800007832-3266adult6363.100000cross
82013_03_05I32641504.270000-6904911.120000-0.2390002692240.1700009824-2568adult6363.100000cross
92013_03_05I41897413.060000-4628390.750000-0.3280002661760.3400007122-1733adult6363.100000cross
102013_03_12I11891403.060000-76610691.240000-0.380000408330.9200004638-1879adult6363.100000cross
112013_03_12I21545482.500000-7156491.150000-0.2980001411120.21000010947-5064adult6363.100000cross
122013_03_12I31307292.110000-61318450.990000-0.768000455920.8000002874-1348adult6363.100000cross
132013_03_12I41692312.730000-6779171.090000-0.4570001861290.3100009089-3636adult6363.100000cross
142013_03_12I51543382.490000-5287500.850000-0.3530001531480.03000010095-3453adult6363.100000cross
152013_03_15I11282312.070000-4527850.730000-0.2530002901050.6400004419-1557adult6363.100000cross
162013_03_15I2775341.250000-4308370.700000-0.2760002571240.5200003019-1677adult6363.100000cross
172013_03_15I32032603.280000-6524861.050000-0.2570001471340.09000013784-4425adult6363.100000cross
182013_03_15I41240342.000000-6929061.120000-0.3170003642600.2800003406-1901adult6363.100000cross
192013_03_15I5473400.760000-53612180.870000-0.3820002591680.3500001830-2073adult6363.100000cross
202013_03_19II11612183.790000-65530871.540000-0.385000348150.9600004633-1881adult7072.700000cross
212013_03_19II2605551.420000-29212610.690000-0.294000248240.9000002441-1177adult7072.700000cross
222013_03_19II3327510.770000-24615080.580000-0.282000130340.7400002517-1894adult7072.700000cross
232013_03_19II4946592.230000-24518410.580000-0.340000106260.7600008893-2301adult7072.700000cross
242013_03_21II1541331.270000-55331261.300000-0.432000276160.9400001959-2004adult7072.700000cross
252013_03_21II21539433.620000-6647411.560000-0.04600085240.72000018073-7802adult7072.700000cross
262013_03_21II3529281.240000-26124820.610000-0.414000325330.9000001627-803adult7072.700000cross
272013_03_21II4628311.480000-6919981.630000-0.071000242670.7200002600-2860adult7072.700000cross
282013_03_25II11453723.420000-9216520.220000-0.00800013601.00000010645-678adult7072.700000cross
292013_03_25II2297420.700000-5669361.330000-0.08400012640.9700002367-4506adult7072.700000cross
302013_03_25II3703331.650000-22321520.520000-0.20900023780.9700002972-942adult7072.700000cross
312013_03_25II4269570.630000-5121891.200000-0.05500029280.0300009279-17652adult7072.700000cross
322013_03_28II1751391.770000-22711950.530000-0.02600020601.0000003647-1101adult7072.700000cross
332013_03_28II2245210.580000-57314661.350000-0.215000190460.7600001288-3014adult7072.700000cross
342013_04_03II11182282.780000-52211971.230000-0.11800028101.0000004213-1860adult7072.700000cross
352013_04_03II2515291.210000-59914861.410000-0.22600021701.0000002369-2757adult7072.700000cross
362013_04_08II1435261.020000-36410170.860000-0.211000189890.5300002302-1927adult7072.700000cross
372013_04_08II2383310.900000-4699741.100000-0.260000221720.6700001737-2129adult7072.700000cross
382013_04_08II3457151.080000-8447801.990000-0.3280001711060.3800002665-4925adult7072.700000cross
392013_04_12II1730421.720000-6487861.520000-0.121000142430.7000005149-4573adult7072.700000cross
402013_05_27III1614884.940000-946830.760000-0.00100097150.8300006326-967juvenile2812.700000cranwelli
412013_05_27III24141433.330000-1632451.310000-0.032000108100.6000003824-1507juvenile2812.700000cranwelli
422013_05_27III33241052.610000-1726191.380000-0.07900055230.3700005946-3149juvenile2812.700000cranwelli
432013_06_11III1776356.240000-22518231.810000-0.132000124170.7700006272-1818juvenile2812.700000cranwelli
442013_06_11III2611294.910000-3019182.420000-0.155000128430.0200004770-2354juvenile2812.700000cranwelli
452013_06_11III3544164.380000-9313510.750000-0.11000043340.71000012699-2181juvenile2812.700000cranwelli
462013_06_14III1538384.320000-13117901.050000-0.036000130741.0000004130-1005juvenile2812.700000cranwelli
472013_06_14III2579314.660000-28910062.330000-0.07300011340.4800005110-2555juvenile2812.700000cranwelli
482013_06_18III1806296.490000-1048830.840000-0.055000115550.6600006993-902juvenile2812.700000cranwelli
492013_06_18III2459323.700000-22912181.850000-0.1370008960.9500005165-2580juvenile2812.700000cranwelli
502013_06_18III3458303.690000-2599102.080000-0.19400091880.1500005048-2855juvenile2812.700000cranwelli
512013_06_18III4626165.040000-2315501.860000-0.04200082230.0100007633-2819juvenile2812.700000cranwelli
522013_06_21III1621274.990000-26720812.140000-0.183000120580.9000005152-2213juvenile2812.700000cranwelli
532013_06_21III2544304.380000-1783761.430000-0.03400019170.05000028641-9364juvenile2812.700000cranwelli
542013_06_21III3535354.300000-1232890.990000-0.02900021290.05000025471-5843juvenile2812.700000cranwelli
552013_06_21III4385393.090000-1516071.220000-0.082000311260.03000012409-4882juvenile2812.700000cranwelli
562013_06_26III1401363.230000-12729321.020000-0.215000142120.8600002835-896juvenile2812.700000cranwelli
572013_06_26III2614344.940000-3726802.990000-0.1400007210.4200008475-5136juvenile2812.700000cranwelli
582013_06_26III3665405.350000-2366851.900000-0.11800012900.1600005171-1834juvenile2812.700000cranwelli
592013_06_26III4488343.930000-39013083.140000-0.208000112580.3900004376-3492juvenile2812.700000cranwelli
602013_05_27IV2172261.280000-4564623.400000-0.05000013300.8800001297-3440juvenile3112.700000cranwelli
612013_05_27IV3142201.050000-1932501.440000-0.04700057740.8300002498-3400juvenile3112.700000cranwelli
622013_05_27IV437550.280000-2367431.760000-0.11900051440.540000735-4647juvenile3112.700000cranwelli
632013_05_30IV1453383.370000-2258441.680000-0.1100001421080.4800003177-1581juvenile3112.700000cranwelli
642013_05_30IV2355312.640000-2177281.610000-0.023000174390.9800002037-1245juvenile3112.700000cranwelli
652013_05_30IV322330.170000-1614721.200000-0.0520005640.020000397-2866juvenile3112.700000cranwelli
662013_06_03IV1502743.740000-1399591.040000-0.08900065770.9100007713-2141juvenile3112.700000cranwelli
672013_06_11IV1273262.030000-2648441.970000-0.160000124810.2900002205-2136juvenile3112.700000cranwelli
682013_06_11IV2720275.360000-34215152.550000-0.22600013700.8300005259-2497juvenile3112.700000cranwelli
692013_06_11IV3582334.340000-2312791.720000-0.0330006040.0300009705-3847juvenile3112.700000cranwelli
702013_06_11IV4198231.470000-20914271.550000-0.151000110690.8400001793-1889juvenile3112.700000cranwelli
712013_06_14IV119861.470000-29228742.170000-0.232000145500.9900001369-2018juvenile3112.700000cranwelli
722013_06_18IV1597294.440000-33942512.530000-0.281000191121.0000003116-1772juvenile3112.700000cranwelli
732013_06_18IV2516313.840000-3716262.760000-0.09400083180.1200006184-4447juvenile3112.700000cranwelli
742013_06_18IV3815346.070000-33112542.470000-0.077000151200.7100005386-2190juvenile3112.700000cranwelli
752013_06_18IV4402383.000000-3029862.250000-0.122000117300.0700003446-2591juvenile3112.700000cranwelli
762013_06_21IV1605394.500000-21616271.610000-0.139000123201.0000004928-1759juvenile3112.700000cranwelli
772013_06_21IV2711765.300000-16320211.210000-0.217000129420.9700005498-1257juvenile3112.700000cranwelli
782013_06_21IV3614334.570000-36713662.730000-0.1980001281080.4600004776-2857juvenile3112.700000cranwelli
792013_06_21IV4468363.480000-21812691.630000-0.122000129680.6100003617-1688juvenile3112.700000cranwelli
\n" ], "text/plain": [ "" ] }, "execution_count": 6, "metadata": {}, "output_type": "execute_result" } ], "source": [ "def highlight_max(df):\n", " # Make full data frame with all strings being light gray bg color\n", " highlight_df = pd.DataFrame(\n", " \"background-color: lightgray\", index=df.index, columns=df.columns\n", " )\n", " \n", " # Which rows contain a maximum force\n", " has_max_force = (\n", " df.groupby(\"ID\")[\"impact force (mN)\"]\n", " .transform(\"max\")\n", " .eq(df[\"impact force (mN)\"])\n", " )\n", " \n", " # Color rows with maximum force green\n", " highlight_df.loc[has_max_force, :] = 'background-color: #7fc97f'\n", " \n", " return highlight_df\n", "\n", "df.style.apply(highlight_max, axis=None)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "While this works and does not require adding anything to the data frame, I think it is more concise to simply add a column that is a Boolean stating whether or not the row contains a maximum impact force and then using this column to determine how each row is shaded." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/html": [ "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
 dateIDtrial numberimpact force (mN)impact time (ms)impact force / body weightadhesive force (mN)time frog pulls on target (ms)adhesive force / body weightadhesive impulse (N-s)total contact area (mm2)contact area without mucus (mm2)contact area with mucus / contact area without mucuscontact pressure (Pa)adhesive strength (Pa)ageSVL (mm)weight (g)speciesmax strike
02013_02_26I31205461.950000-7858841.270000-0.290000387700.8200003117-2030adult6363.100000crossFalse
12013_02_26I42527444.080000-9832481.590000-0.181000101940.07000024923-9695adult6363.100000crossFalse
22013_03_01I11745342.820000-8502111.370000-0.15700083790.05000021020-10239adult6363.100000crossFalse
32013_03_01I21556412.510000-45510250.740000-0.1700003301580.5200004718-1381adult6363.100000crossFalse
42013_03_01I3493360.800000-9744991.570000-0.4230002452160.1200002012-3975adult6363.100000crossFalse
52013_03_01I42276313.680000-5929690.960000-0.1760003411060.6900006676-1737adult6363.100000crossFalse
62013_03_05I1556430.900000-5128350.830000-0.2850003591100.6900001550-1427adult6363.100000crossFalse
72013_03_05I21928463.110000-8045081.300000-0.2850002461780.2800007832-3266adult6363.100000crossFalse
82013_03_05I32641504.270000-6904911.120000-0.2390002692240.1700009824-2568adult6363.100000crossTrue
92013_03_05I41897413.060000-4628390.750000-0.3280002661760.3400007122-1733adult6363.100000crossFalse
102013_03_12I11891403.060000-76610691.240000-0.380000408330.9200004638-1879adult6363.100000crossFalse
112013_03_12I21545482.500000-7156491.150000-0.2980001411120.21000010947-5064adult6363.100000crossFalse
122013_03_12I31307292.110000-61318450.990000-0.768000455920.8000002874-1348adult6363.100000crossFalse
132013_03_12I41692312.730000-6779171.090000-0.4570001861290.3100009089-3636adult6363.100000crossFalse
142013_03_12I51543382.490000-5287500.850000-0.3530001531480.03000010095-3453adult6363.100000crossFalse
152013_03_15I11282312.070000-4527850.730000-0.2530002901050.6400004419-1557adult6363.100000crossFalse
162013_03_15I2775341.250000-4308370.700000-0.2760002571240.5200003019-1677adult6363.100000crossFalse
172013_03_15I32032603.280000-6524861.050000-0.2570001471340.09000013784-4425adult6363.100000crossFalse
182013_03_15I41240342.000000-6929061.120000-0.3170003642600.2800003406-1901adult6363.100000crossFalse
192013_03_15I5473400.760000-53612180.870000-0.3820002591680.3500001830-2073adult6363.100000crossFalse
202013_03_19II11612183.790000-65530871.540000-0.385000348150.9600004633-1881adult7072.700000crossTrue
212013_03_19II2605551.420000-29212610.690000-0.294000248240.9000002441-1177adult7072.700000crossFalse
222013_03_19II3327510.770000-24615080.580000-0.282000130340.7400002517-1894adult7072.700000crossFalse
232013_03_19II4946592.230000-24518410.580000-0.340000106260.7600008893-2301adult7072.700000crossFalse
242013_03_21II1541331.270000-55331261.300000-0.432000276160.9400001959-2004adult7072.700000crossFalse
252013_03_21II21539433.620000-6647411.560000-0.04600085240.72000018073-7802adult7072.700000crossFalse
262013_03_21II3529281.240000-26124820.610000-0.414000325330.9000001627-803adult7072.700000crossFalse
272013_03_21II4628311.480000-6919981.630000-0.071000242670.7200002600-2860adult7072.700000crossFalse
282013_03_25II11453723.420000-9216520.220000-0.00800013601.00000010645-678adult7072.700000crossFalse
292013_03_25II2297420.700000-5669361.330000-0.08400012640.9700002367-4506adult7072.700000crossFalse
302013_03_25II3703331.650000-22321520.520000-0.20900023780.9700002972-942adult7072.700000crossFalse
312013_03_25II4269570.630000-5121891.200000-0.05500029280.0300009279-17652adult7072.700000crossFalse
322013_03_28II1751391.770000-22711950.530000-0.02600020601.0000003647-1101adult7072.700000crossFalse
332013_03_28II2245210.580000-57314661.350000-0.215000190460.7600001288-3014adult7072.700000crossFalse
342013_04_03II11182282.780000-52211971.230000-0.11800028101.0000004213-1860adult7072.700000crossFalse
352013_04_03II2515291.210000-59914861.410000-0.22600021701.0000002369-2757adult7072.700000crossFalse
362013_04_08II1435261.020000-36410170.860000-0.211000189890.5300002302-1927adult7072.700000crossFalse
372013_04_08II2383310.900000-4699741.100000-0.260000221720.6700001737-2129adult7072.700000crossFalse
382013_04_08II3457151.080000-8447801.990000-0.3280001711060.3800002665-4925adult7072.700000crossFalse
392013_04_12II1730421.720000-6487861.520000-0.121000142430.7000005149-4573adult7072.700000crossFalse
402013_05_27III1614884.940000-946830.760000-0.00100097150.8300006326-967juvenile2812.700000cranwelliFalse
412013_05_27III24141433.330000-1632451.310000-0.032000108100.6000003824-1507juvenile2812.700000cranwelliFalse
422013_05_27III33241052.610000-1726191.380000-0.07900055230.3700005946-3149juvenile2812.700000cranwelliFalse
432013_06_11III1776356.240000-22518231.810000-0.132000124170.7700006272-1818juvenile2812.700000cranwelliFalse
442013_06_11III2611294.910000-3019182.420000-0.155000128430.0200004770-2354juvenile2812.700000cranwelliFalse
452013_06_11III3544164.380000-9313510.750000-0.11000043340.71000012699-2181juvenile2812.700000cranwelliFalse
462013_06_14III1538384.320000-13117901.050000-0.036000130741.0000004130-1005juvenile2812.700000cranwelliFalse
472013_06_14III2579314.660000-28910062.330000-0.07300011340.4800005110-2555juvenile2812.700000cranwelliFalse
482013_06_18III1806296.490000-1048830.840000-0.055000115550.6600006993-902juvenile2812.700000cranwelliTrue
492013_06_18III2459323.700000-22912181.850000-0.1370008960.9500005165-2580juvenile2812.700000cranwelliFalse
502013_06_18III3458303.690000-2599102.080000-0.19400091880.1500005048-2855juvenile2812.700000cranwelliFalse
512013_06_18III4626165.040000-2315501.860000-0.04200082230.0100007633-2819juvenile2812.700000cranwelliFalse
522013_06_21III1621274.990000-26720812.140000-0.183000120580.9000005152-2213juvenile2812.700000cranwelliFalse
532013_06_21III2544304.380000-1783761.430000-0.03400019170.05000028641-9364juvenile2812.700000cranwelliFalse
542013_06_21III3535354.300000-1232890.990000-0.02900021290.05000025471-5843juvenile2812.700000cranwelliFalse
552013_06_21III4385393.090000-1516071.220000-0.082000311260.03000012409-4882juvenile2812.700000cranwelliFalse
562013_06_26III1401363.230000-12729321.020000-0.215000142120.8600002835-896juvenile2812.700000cranwelliFalse
572013_06_26III2614344.940000-3726802.990000-0.1400007210.4200008475-5136juvenile2812.700000cranwelliFalse
582013_06_26III3665405.350000-2366851.900000-0.11800012900.1600005171-1834juvenile2812.700000cranwelliFalse
592013_06_26III4488343.930000-39013083.140000-0.208000112580.3900004376-3492juvenile2812.700000cranwelliFalse
602013_05_27IV2172261.280000-4564623.400000-0.05000013300.8800001297-3440juvenile3112.700000cranwelliFalse
612013_05_27IV3142201.050000-1932501.440000-0.04700057740.8300002498-3400juvenile3112.700000cranwelliFalse
622013_05_27IV437550.280000-2367431.760000-0.11900051440.540000735-4647juvenile3112.700000cranwelliFalse
632013_05_30IV1453383.370000-2258441.680000-0.1100001421080.4800003177-1581juvenile3112.700000cranwelliFalse
642013_05_30IV2355312.640000-2177281.610000-0.023000174390.9800002037-1245juvenile3112.700000cranwelliFalse
652013_05_30IV322330.170000-1614721.200000-0.0520005640.020000397-2866juvenile3112.700000cranwelliFalse
662013_06_03IV1502743.740000-1399591.040000-0.08900065770.9100007713-2141juvenile3112.700000cranwelliFalse
672013_06_11IV1273262.030000-2648441.970000-0.160000124810.2900002205-2136juvenile3112.700000cranwelliFalse
682013_06_11IV2720275.360000-34215152.550000-0.22600013700.8300005259-2497juvenile3112.700000cranwelliFalse
692013_06_11IV3582334.340000-2312791.720000-0.0330006040.0300009705-3847juvenile3112.700000cranwelliFalse
702013_06_11IV4198231.470000-20914271.550000-0.151000110690.8400001793-1889juvenile3112.700000cranwelliFalse
712013_06_14IV119861.470000-29228742.170000-0.232000145500.9900001369-2018juvenile3112.700000cranwelliFalse
722013_06_18IV1597294.440000-33942512.530000-0.281000191121.0000003116-1772juvenile3112.700000cranwelliFalse
732013_06_18IV2516313.840000-3716262.760000-0.09400083180.1200006184-4447juvenile3112.700000cranwelliFalse
742013_06_18IV3815346.070000-33112542.470000-0.077000151200.7100005386-2190juvenile3112.700000cranwelliTrue
752013_06_18IV4402383.000000-3029862.250000-0.122000117300.0700003446-2591juvenile3112.700000cranwelliFalse
762013_06_21IV1605394.500000-21616271.610000-0.139000123201.0000004928-1759juvenile3112.700000cranwelliFalse
772013_06_21IV2711765.300000-16320211.210000-0.217000129420.9700005498-1257juvenile3112.700000cranwelliFalse
782013_06_21IV3614334.570000-36713662.730000-0.1980001281080.4600004776-2857juvenile3112.700000cranwelliFalse
792013_06_21IV4468363.480000-21812691.630000-0.122000129680.6100003617-1688juvenile3112.700000cranwelliFalse
\n" ], "text/plain": [ "" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "df[\"max strike\"] = (\n", " df.groupby(\"ID\")[\"impact force (mN)\"].transform(\"max\").eq(df[\"impact force (mN)\"])\n", ")\n", "\n", "\n", "def highlight_max(s):\n", " if s[\"max strike\"]:\n", " return [\"background-color: #7fc97f\"] * len(s)\n", " else:\n", " return [\"background-color: lightgray\"] * len(s)\n", "\n", "\n", "df.style.apply(highlight_max, axis=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Computing environment" ] }, { "cell_type": "code", "execution_count": 8, "metadata": { "tags": [ "hide-input" ] }, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Python implementation: CPython\n", "Python version : 3.9.12\n", "IPython version : 8.3.0\n", "\n", "pandas : 1.4.2\n", "jupyterlab: 3.3.2\n", "\n" ] } ], "source": [ "%load_ext watermark\n", "%watermark -v -p pandas,jupyterlab" ] } ], "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.9.12" } }, "nbformat": 4, "nbformat_minor": 4 }