{
"cells": [
{
"cell_type": "code",
"execution_count": 1,
"id": "8ff39ca7-ad1f-4801-a0d1-2ee258430d0b",
"metadata": {},
"outputs": [],
"source": [
"import pandas as pd"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "638572c5-f855-4044-9860-f1addcc1a0e2",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"
\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Species | \n",
" Observation site A | \n",
" Observation site B | \n",
" Observation site C | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" arctic fox | \n",
" 3 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" walrus | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
" | 2 | \n",
" reindeer | \n",
" 0 | \n",
" 10 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3 | \n",
" polar bear | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" | 4 | \n",
" seal | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Species Observation site A Observation site B Observation site C\n",
"0 arctic fox 3 1 0\n",
"1 walrus 0 1 1\n",
"2 reindeer 0 10 1\n",
"3 polar bear 1 0 1\n",
"4 seal 2 1 2"
]
},
"execution_count": 2,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"wide_form = pd.DataFrame(\n",
" {\n",
" \"Species\": [\"arctic fox\", \"walrus\", \"reindeer\", \"polar bear\", \"seal\"],\n",
" \"Observation site A\": [3, 0, 0, 1, 2],\n",
" \"Observation site B\": [1, 1, 10, 0, 1],\n",
" \"Observation site C\": [0, 1, 1, 1, 2],\n",
" }\n",
")\n",
"\n",
"wide_form"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "023fc7fb-9e90-4e84-9495-df3c87a3f492",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | \n",
" Species | \n",
" Site | \n",
" Number of sightings | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" arctic fox | \n",
" Observation site A | \n",
" 3 | \n",
"
\n",
" \n",
" | 1 | \n",
" walrus | \n",
" Observation site A | \n",
" 0 | \n",
"
\n",
" \n",
" | 2 | \n",
" reindeer | \n",
" Observation site A | \n",
" 0 | \n",
"
\n",
" \n",
" | 3 | \n",
" polar bear | \n",
" Observation site A | \n",
" 1 | \n",
"
\n",
" \n",
" | 4 | \n",
" seal | \n",
" Observation site A | \n",
" 2 | \n",
"
\n",
" \n",
" | 5 | \n",
" arctic fox | \n",
" Observation site B | \n",
" 1 | \n",
"
\n",
" \n",
" | 6 | \n",
" walrus | \n",
" Observation site B | \n",
" 1 | \n",
"
\n",
" \n",
" | 7 | \n",
" reindeer | \n",
" Observation site B | \n",
" 10 | \n",
"
\n",
" \n",
" | 8 | \n",
" polar bear | \n",
" Observation site B | \n",
" 0 | \n",
"
\n",
" \n",
" | 9 | \n",
" seal | \n",
" Observation site B | \n",
" 1 | \n",
"
\n",
" \n",
" | 10 | \n",
" arctic fox | \n",
" Observation site C | \n",
" 0 | \n",
"
\n",
" \n",
" | 11 | \n",
" walrus | \n",
" Observation site C | \n",
" 1 | \n",
"
\n",
" \n",
" | 12 | \n",
" reindeer | \n",
" Observation site C | \n",
" 1 | \n",
"
\n",
" \n",
" | 13 | \n",
" polar bear | \n",
" Observation site C | \n",
" 1 | \n",
"
\n",
" \n",
" | 14 | \n",
" seal | \n",
" Observation site C | \n",
" 2 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
" Species Site Number of sightings\n",
"0 arctic fox Observation site A 3\n",
"1 walrus Observation site A 0\n",
"2 reindeer Observation site A 0\n",
"3 polar bear Observation site A 1\n",
"4 seal Observation site A 2\n",
"5 arctic fox Observation site B 1\n",
"6 walrus Observation site B 1\n",
"7 reindeer Observation site B 10\n",
"8 polar bear Observation site B 0\n",
"9 seal Observation site B 1\n",
"10 arctic fox Observation site C 0\n",
"11 walrus Observation site C 1\n",
"12 reindeer Observation site C 1\n",
"13 polar bear Observation site C 1\n",
"14 seal Observation site C 2"
]
},
"execution_count": 3,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"long_form = wide_form.melt(\"Species\", var_name=\"Site\", value_name=\"Number of sightings\")\n",
"\n",
"long_form"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "ee7f9a80-a691-421f-a3c6-a93672d40e83",
"metadata": {},
"outputs": [
{
"data": {
"text/html": [
"\n",
"\n",
"
\n",
" \n",
" \n",
" | Site | \n",
" Species | \n",
" Observation site A | \n",
" Observation site B | \n",
" Observation site C | \n",
"
\n",
" \n",
" \n",
" \n",
" | 0 | \n",
" arctic fox | \n",
" 3 | \n",
" 1 | \n",
" 0 | \n",
"
\n",
" \n",
" | 1 | \n",
" polar bear | \n",
" 1 | \n",
" 0 | \n",
" 1 | \n",
"
\n",
" \n",
" | 2 | \n",
" reindeer | \n",
" 0 | \n",
" 10 | \n",
" 1 | \n",
"
\n",
" \n",
" | 3 | \n",
" seal | \n",
" 2 | \n",
" 1 | \n",
" 2 | \n",
"
\n",
" \n",
" | 4 | \n",
" walrus | \n",
" 0 | \n",
" 1 | \n",
" 1 | \n",
"
\n",
" \n",
"
\n",
"
"
],
"text/plain": [
"Site Species Observation site A Observation site B Observation site C\n",
"0 arctic fox 3 1 0\n",
"1 polar bear 1 0 1\n",
"2 reindeer 0 10 1\n",
"3 seal 2 1 2\n",
"4 walrus 0 1 1"
]
},
"execution_count": 4,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"long_form.pivot(\n",
" index=\"Species\", columns=\"Site\", values=\"Number of sightings\"\n",
").reset_index()"
]
}
],
"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.12.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}