I’m using the Kepler exoplanet dataset.
After loading it, and running a simple transpose() on it, in order to get the rows as columns, I try a seaborn boxplot, as follows:

sns.boxplot(data=df_train.tail(3197), x='0')
This returns:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
Input In [45], in <module>
----> 1 sns.boxplot(data=df_train.tail(3197), x='0')
File c:usersmartiappdatalocalprogramspythonpython39libsite-packagesseaborn_decorators.py:46, in _deprecate_positional_args.<locals>.inner_f(*args, **kwargs)
36 warnings.warn(
37 "Pass the following variable{} as {}keyword arg{}: {}. "
38 "From version 0.12, the only valid positional argument "
(...)
43 FutureWarning
44 )
45 kwargs.update({k: arg for k, arg in zip(sig.parameters, args)})
---> 46 return f(**kwargs)
File c:usersmartiappdatalocalprogramspythonpython39libsite-packagesseaborncategorical.py:2243, in boxplot(x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, fliersize, linewidth, whis, ax, **kwargs)
2231 @_deprecate_positional_args
2232 def boxplot(
2233 *,
(...)
2240 **kwargs
2241 ):
-> 2243 plotter = _BoxPlotter(x, y, hue, data, order, hue_order,
2244 orient, color, palette, saturation,
2245 width, dodge, fliersize, linewidth)
2247 if ax is None:
2248 ax = plt.gca()
File c:usersmartiappdatalocalprogramspythonpython39libsite-packagesseaborncategorical.py:406, in _BoxPlotter.__init__(self, x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, dodge, fliersize, linewidth)
402 def __init__(self, x, y, hue, data, order, hue_order,
403 orient, color, palette, saturation,
404 width, dodge, fliersize, linewidth):
--> 406 self.establish_variables(x, y, hue, data, orient, order, hue_order)
407 self.establish_colors(color, palette, saturation)
409 self.dodge = dodge
File c:usersmartiappdatalocalprogramspythonpython39libsite-packagesseaborncategorical.py:153, in _CategoricalPlotter.establish_variables(self, x, y, hue, data, orient, order, hue_order, units)
151 if isinstance(var, str):
152 err = "Could not interpret input '{}'".format(var)
--> 153 raise ValueError(err)
155 # Figure out the plotting orientation
156 orient = infer_orient(
157 x, y, orient, require_numeric=self.require_numeric
158 )
ValueError: Could not interpret input '0'
I also attempted this:
sns.boxplot(df_train.tail(3197)['0'])
and got a KeyError: '0' instead. What am I doing wrong? As far as I can tell, I’m doing the exact same thing as the first example on the official Seaborn website, here.
Answers:
Thank you for visiting the Q&A section on Magenaut. Please note that all the answers may not help you solve the issue immediately. So please treat them as advisements. If you found the post helpful (or not), leave a comment & I’ll get back to you as soon as possible.
Method 1
A workable example:
filepath = "exoTrain.csv"
df_train = pd.read_csv(filepath)
df_train = df_train.transpose()
print(df_train.columns)
This outputs: RangeIndex(start=0, stop=5087, step=1) which shows us that the indices are actually integers, rather than strings e.g. ‘0’, ‘1’, ‘2’
Changing the code to sns.boxplot(data=df_train.tail(3197), x=0) fixes the issue.
All methods was sourced from stackoverflow.com or stackexchange.com, is licensed under cc by-sa 2.5, cc by-sa 3.0 and cc by-sa 4.0