Can you also print your v0_v2_12_na value out to see if it has any values? If it has values, specify your xaxis and yaxis in sns.boxplot(x = 'cyclone types', y = 'Na concetration', data = data). I would also suggest you to use tidy data. For example, you can have a new column for you _na variable. Say df['result_na'] = df.loc[df["Notes"].isin(["V0_V2_12", "V0_V1"]), "Na (ng/cm2)"]. In this way, each row of result_na is corresponding with each row of ['Notes'] based on the cyclone type. Your boxplot can be obtained by sns.boxplot(x = 'Notes', y = 'result_na', data = df)