ValueError:不再支持多维索引(例如 `obj[:, None]`)。在索引之前转换为 numpy 数组

问题描述 投票:0回答:4

我正在尝试使用seaborn 绘制直方图。当我尝试设置 kde=True 时,返回此错误: ValueError:不再支持多维索引(例如

obj[:, None]
)。在建立索引之前转换为 numpy 数组。

sns.histplot(data=df, x='age', kde=True);

我该如何解决这个问题?

seaborn histogram visualization kernel-density
4个回答
4
投票

这也可能发生在 Matplotlib 中。我有一个虚拟环境,其中 matplotlib=3.3.0 和 pandas=2.0.2。

一种解决方法是使用数据框的值属性,该属性将返回一个 numpy 数组,然后可以在绘图函数中使用该数组:

plt.plot(df['var_name'].values, df['other_var_name'].values)

3
投票

我相信你的 matplotlib 版本和 pandas 版本之间不兼容,seaborn 夹在中间(来源:https://github.com/mwaskom/seaborn/issues/3312


0
投票

您可以升级您的软件包,但它可能与其他库(例如TensorFlow)不兼容,因此,您可能必须降级软件包。


0
投票

.values
有效

plt.plot(df['var_name'].values, df['other_var_name'].values)

...但是

pandas.DataFrame.values
文档指出:

警告:我们建议使用

DataFrame.to_numpy()
代替。

所以,推荐这样做:

plt.plot(df['var_name'].to_numpy(), df['other_var_name'].to_numpy())
© www.soinside.com 2019 - 2024. All rights reserved.