Skip to content
New Workbook
Sign up
Competition - Optimizing Pollinator Bee-Friendly Spaces: Unraveling Plant Preferences for Native and Non-Native Species
0

Which plants are better for bees: native or non-native?

📖 Background

You work for the local government environment agency and have taken on a project about creating pollinator bee-friendly spaces. You can use both native and non-native plants to create these spaces and therefore need to ensure that you use the correct plants to optimize the environment for these bees.

The team has collected data on native and non-native plants and their effects on pollinator bees. Your task will be to analyze this data and provide recommendations on which plants create an optimized environment for pollinator bees.

💾 The Data

You have assembled information on the plants and bees research in a file called plants_and_bees.csv. Each row represents a sample that was taken from a patch of land where the plant species were being studied.

ColumnDescription
sample_idThe ID number of the sample taken.
bees_numThe total number of bee individuals in the sample.
dateDate the sample was taken.
seasonSeason during sample collection ("early.season" or "late.season").
siteName of collection site.
native_or_nonWhether the sample was from a native or non-native plot.
samplingThe sampling method.
plant_speciesThe name of the plant species the sample was taken from. None indicates the sample was taken from the air.
timeThe time the sample was taken.
bee_speciesThe bee species in the sample.
sexThe gender of the bee species.
specialized_onThe plant genus the bee species preferred.
parasiticWhether or not the bee is parasitic (0:no, 1:yes).
nestingThe bees nesting method.
statusThe status of the bee species.
nonnative_beeWhether the bee species is native or not (0:no, 1:yes).

Source (data has been modified)

⌛️ Time is ticking. Good luck!

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
df = pd.read_csv("data/plants_and_bees.csv")
df
df.shape
print ('---------------------------------------------------------------------------------------------------------')
df.info()
print ('---------------------------------------------------------------------------------------------------------')
print ('---------------------------------------------------------------------------------------------------------')
print (df.nunique())
print ('---------------------------------------------------------------------------------------------------------')
df.isnull().sum()

Numeric and categorical validation

Numerical validation

Let's determine which data are numerical and which are categorical. The date, by definition, can be of a different data type such as categorical, ordinal, or both.

numeric = ['sample_id', 'bees_num', 'time']
for column in numeric:
  print(df[column].value_counts())
df [numeric].describe()

Categorical validation

Here are some data that have been assumed to be categorical, but could have been interpreted as boolean, which would help us in building machine learning models if required for the task.

That being said, the categorical data are: season, site, native_or_non (could be boolean), sampling, plant_species, bee_species, sex, specialized_on, nesting, status, parasitic, and nonnative_bee.