当前位置: 首页 > 面试题库 >

Seaborn boxplot:TypeError:/:'str'和'int'不支持的操作数类型

葛和志
2023-03-14
问题内容

我试图像这样制作垂直的seaborn boxplot

import pandas as pd
df = pd.DataFrame({'a' : ['a', 'b' , 'b', 'a'], 'b' : [5, 6, 4, 3] })
import seaborn as sns
import matplotlib.pylab as plt
%matplotlib inline
sns.boxplot(  x= "b",y="a",data=df )

我得到

在此处输入图片说明

我写东方

sns.boxplot(  x= "c",y="a",data=df , orient = "v")

并得到

TypeError: unsupported operand type(s) for /: 'str' and 'int'

sns.boxplot(  x= "c",y="a",data=df , orient = "h")

作品coreect!怎么了?

TypeError                                 Traceback (most recent call last)
<ipython-input-16-5291a1613328> in <module>()
----> 1 sns.boxplot(  x= "b",y="a",data=df , orient = "v")

C:\Program Files\Anaconda3\lib\site-packages\seaborn\categorical.py in boxplot(x, y, hue, data, order, hue_order, orient, color, palette, saturation, width, fliersize, linewidth, whis, notch, ax, **kwargs)
   2179     kwargs.update(dict(whis=whis, notch=notch))
   2180 
-> 2181     plotter.plot(ax, kwargs)
   2182     return ax
   2183

C:\Program Files\Anaconda3\lib\site-packages\seaborn\categorical.py in plot(self, ax, boxplot_kws)
    526     def plot(self, ax, boxplot_kws):
    527         """Make the plot."""
--> 528         self.draw_boxplot(ax, boxplot_kws)
    529         self.annotate_axes(ax)
    530         if self.orient == "h":

C:\Program Files\Anaconda3\lib\site-packages\seaborn\categorical.py in draw_boxplot(self, ax, kws)
    463                                          positions=[i],
    464                                          widths=self.width,
--> 465                                          **kws)
    466                 color = self.colors[i]
    467                 self.restyle_boxplot(artist_dict, color, props)

C:\Program Files\Anaconda3\lib\site-packages\matplotlib\__init__.py in inner(ax, *args, **kwargs)
   1816                     warnings.warn(msg % (label_namer, func.__name__),
   1817                                   RuntimeWarning, stacklevel=2)
-> 1818             return func(ax, *args, **kwargs)
   1819         pre_doc = inner.__doc__
   1820         if pre_doc is None:

C:\Program Files\Anaconda3\lib\site-packages\matplotlib\axes\_axes.py in boxplot(self, x, notch, sym, vert, whis, positions, widths, patch_artist, bootstrap, usermedians, conf_intervals, meanline, showmeans, showcaps, showbox, showfliers, boxprops, labels, flierprops, medianprops, meanprops, capprops, whiskerprops, manage_xticks, autorange)
   3172             bootstrap = rcParams['boxplot.bootstrap']
   3173         bxpstats = cbook.boxplot_stats(x, whis=whis, bootstrap=bootstrap,
-> 3174                                        labels=labels, autorange=autorange)
   3175         if notch is None:
   3176             notch = rcParams['boxplot.notch']

C:\Program Files\Anaconda3\lib\site-packages\matplotlib\cbook.py in boxplot_stats(X, whis, bootstrap, labels, autorange)
   2036 
   2037         # arithmetic mean
-> 2038         stats['mean'] = np.mean(x)
   2039 
   2040         # medians and quartiles

C:\Program Files\Anaconda3\lib\site-packages\numpy\core\fromnumeric.py in mean(a, axis, dtype, out, keepdims)
   2883 
   2884     return _methods._mean(a, axis=axis, dtype=dtype,
-> 2885                           out=out, keepdims=keepdims)
   2886 
   2887

C:\Program Files\Anaconda3\lib\site-packages\numpy\core\_methods.py in _mean(a, axis, dtype, out, keepdims)
     70         ret = ret.dtype.type(ret / rcount)
     71     else:
---> 72         ret = ret / rcount
     73 
     74     return ret

TypeError: unsupported operand type(s) for /: 'str' and 'int'

问题答案:

对于Seaborn的箱形图,在水平和垂直对齐方式之间切换时,请务必注意x轴和y轴的分配:

%matplotlib inline
import pandas as pd
import seaborn as sns

df = pd.DataFrame({'a' : ['a', 'b' , 'b', 'a'], 'b' : [5, 6, 4, 3] })

# horizontal boxplots
sns.boxplot(x="b", y="a", data=df, orient='h')

# vertical boxplots
sns.boxplot(x="a", y="b", data=df, orient='v')

混淆列会导致seaborn尝试计算分类数据框中的摘要统计信息,这肯定会失败。



 类似资料:
  • 问题内容: 每当我运行这个程序我都会得到这个 我该怎么做才能将pyc除以tpy? 问题答案: 通过将它们变成整数: 在python 3中,该函数返回一个字符串。总是。这是对Python 2的更改;该功能已重命名为。

  • 问题内容: 我是python(PYTHON 3.4.2)的新手,我正在尝试制作一个可进行加法和除法运算的程序,以查找用户输入的平均值或均值,但我不知道如何添加数字接收。 当我在命令提示符下打开程序时,它接受我输入的数字,并且如果我使用打印功能,也将打印它,但不会将数字加起来。 我收到此错误: 我的代码如下: 任何帮助将不胜感激。 问题答案: 将输入作为字符串 您要告诉用户使用逗号分隔输入,因此需要

  • 问题内容: 我正在学习python并从事练习。其中之一是对投票系统进行编码,以便使用列表在比赛的23名球员中选择最佳球员。 我正在使用。 我的代码: 我懂了 TypeError:“ str”和“ int”的实例之间不支持“ <=” 但是我这里没有任何字符串,所有变量都是整数。 问题答案: 更改 至 您将从控制台以字符串形式获取输入,因此必须将输入字符串转换为对象才能进行数字运算。

  • 问题是从dict1开始的= 这就是数据帧的外观: 打印(len_c):长度: 550, dtype: int64 打印(len_a_b):长度:6646,数据类型:int64 正如你在标记化之后看到的,我们这里有100%的整数,但是python仍然说它没有。当数据不是两个完整的数据帧时,同样的函数也适用。

  • 我有以下代码。我知道它既长又复杂,但在我的笔记本电脑上运行需要1.5分钟。如果您能帮助我找到最后导致错误的问题-绘图部分,我将不胜感激。我在Google上没有找到与此错误消息相关的任何内容: QuadMesh和Float的不支持操作数类型 在绘图部分,我尝试了多种形式。它失败于: 在以下情况下失败: 我没有办法在那里介绍什么。 非常感谢。

  • 对stackoverflow来说是全新的,所以如果我犯了任何错误,请原谅我 我现在正在努力学习Java,我的if语句遇到了一些问题 在下面的代码块中,我遇到了一个错误: 不兼容的操作数类型die和int 我知道错误告诉我要修复什么,但我不太确定如何着手并实际修复它。 有什么建议吗?