ValueError:使用带有 seaborn 线图的索引时无法解释输入“索引”
Posted
技术标签:
【中文标题】ValueError:使用带有 seaborn 线图的索引时无法解释输入“索引”【英文标题】:ValueError: Could not interpret input 'index' when using index with seaborn lineplot 【发布时间】:2019-02-14 20:05:46 【问题描述】:我希望使用 pandas DataFrame 的索引作为 seaborn 图的 x 值。但是,这会引发值错误。
一个小测试示例:
import pandas as pd
import seaborn as sns
sns.lineplot(x='index',y='test',hue='test2',data=pd.DataFrame('test':range(9),'test2':range(9)))
它引发:
ValueError: Could not interpret input 'index'
不能将索引用作 x 值吗?我究竟做错了什么? Python 2.7,海生 0.9
【问题讨论】:
【参考方案1】:我宁愿以这种方式使用它。您需要删除hue
,因为我认为它有不同的用途,不适用于您当前的DataFrame,因为您只有一行。访问官方文档here 了解更多信息。
df=pd.DataFrame('test':range(9),'test2':range(9))
sns.lineplot(x=df.index, y='test', data=df)
输出
【讨论】:
或者,您可以按照Seaborn on calculated valuedf = df.reset_index()
中的说明重置索引。【参考方案2】:
您需要确保提供给x
参数的字符串实际上是数据框中的列。最简单的解决方案是重置数据框的索引以将索引转换为列。
sns.lineplot(x='index', y='test', data=pd.DataFrame('test':range(9),'test2':range(9)).reset_index())
【讨论】:
【参考方案3】:我知道这是一个老问题,也许当时还不存在,但有一种更简单的方法可以实现这一点:
如果您只是将数据帧中的一个系列作为“数据”参数传递,seaborn 将自动使用索引作为 x 值。
sns.lineplot(data=df.column1)
【讨论】:
以上是关于ValueError:使用带有 seaborn 线图的索引时无法解释输入“索引”的主要内容,如果未能解决你的问题,请参考以下文章
尝试使用 Seaborn 从 DataFrame 列绘制单变量分布时,“ValueError:无法一起广播操作数”
创建 seaborn 热图时“无法将字符串转换为浮点数”ValueError
Seaborn ValueError:零大小数组到没有标识的缩减操作最小值
收到“ValueError:Series 的真值不明确。使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。”创建seaborn catplot时[重复]