web-dev-qa-db-ja.com

ValueError:Seaborn Lineplotでインデックスを使用する場合、入力 'インデックス'を解釈できませんでした

Seabornのx値としてa pandas DataFrameのインデックスを使用すると、値エラーが発生します。小さなテスト例:

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、seaborn 0.9

5
MaxS

むしろこの方法で使用したいと思います。 hueを削除する必要があるのは、1行しかないため、現在のDataFrameには適用されない別の目的があると思われるためです。詳細については、公式ドキュメント こちら をご覧ください。

df=pd.DataFrame({'test':range(9),'test2':range(9)})
sns.lineplot(x=df.index, y='test', data=df)

出力

enter image description here

8
Sheldore

x引数に指定する文字列が、実際にはデータフレーム内のcolumnであることを確認する必要があります。これを達成する最も簡単な解決策は、データフレームのインデックスをリセットして、インデックスを列に変換することです。

sns.lineplot(x='index', y='test', data=pd.DataFrame({'test':range(9),'test2':range(9)}).reset_index())