import pandas as pd
wide_form = pd.DataFrame(
{
"Species": ["arctic fox", "walrus", "reindeer", "polar bear", "seal"],
"Observation site A": [3, 0, 0, 1, 2],
"Observation site B": [1, 1, 10, 0, 1],
"Observation site C": [0, 1, 1, 1, 2],
}
)
wide_form
Species | Observation site A | Observation site B | Observation site C | |
---|---|---|---|---|
0 | arctic fox | 3 | 1 | 0 |
1 | walrus | 0 | 1 | 1 |
2 | reindeer | 0 | 10 | 1 |
3 | polar bear | 1 | 0 | 1 |
4 | seal | 2 | 1 | 2 |
long_form = wide_form.melt("Species", var_name="Site", value_name="Number of sightings")
long_form
Species | Site | Number of sightings | |
---|---|---|---|
0 | arctic fox | Observation site A | 3 |
1 | walrus | Observation site A | 0 |
2 | reindeer | Observation site A | 0 |
3 | polar bear | Observation site A | 1 |
4 | seal | Observation site A | 2 |
5 | arctic fox | Observation site B | 1 |
6 | walrus | Observation site B | 1 |
7 | reindeer | Observation site B | 10 |
8 | polar bear | Observation site B | 0 |
9 | seal | Observation site B | 1 |
10 | arctic fox | Observation site C | 0 |
11 | walrus | Observation site C | 1 |
12 | reindeer | Observation site C | 1 |
13 | polar bear | Observation site C | 1 |
14 | seal | Observation site C | 2 |
long_form.pivot(
index="Species", columns="Site", values="Number of sightings"
).reset_index()
Site | Species | Observation site A | Observation site B | Observation site C |
---|---|---|---|---|
0 | arctic fox | 3 | 1 | 0 |
1 | polar bear | 1 | 0 | 1 |
2 | reindeer | 0 | 10 | 1 |
3 | seal | 2 | 1 | 2 |
4 | walrus | 0 | 1 | 1 |