LoginSignup
0
0

Seabornでプロットする際のDataFrame変換

Last updated at Posted at 2023-12-27

DataFrameの変換

Seabornでプロットする際のDataFrameの形について

パラメーターx,yには、それぞれ一つの列しか指定できない。

したがって、データを含むDataFrameの形に注意する必要がある。

  • x軸に指定したいカテゴリは列名にせず、1列に含める。
  • y軸に指定したい値は、複数列にせず1列にする。

以下は、Excelでデータをまとめる際によくありそうな形式の例。
image.png


プロットする際、このようなデータは以下のように形式に変換する必要がある。

image.png

変形のポイント

  • カテゴリ1が2列目のみに全て含まれている。(変形前は2~4列目にまたがっていた)
  • 値が3列目のみに全て含まれている。
  • カテゴリ2(グループ分けしてプロットしたい時のみ使う)も同様に、4列目のみに全て含まれている。

変換方法

CSVからの読み込み

df = pd.read_csv('./data.csv', header=0, index_col=0)

入力データの形別でのDataFrame変換方法

2要素(値、カテゴリ1)のDataFrameの変換

df_sns = df.stack().reset_index()
df_sns.columns=['id', 'x_value', 'y_value']

3要素(値、カテゴリ1、カテゴリ2)のDataFrameの変換

ただし、読み込んだCSVファイル内のデータにおいて、
グループの列が一番右列にあり列名がgroupになっている前提。

col_num  = len(df.columns)-1
df_stack = df.iloc[:, 0:col_num].stack().reset_index()
df_stack.columns = ['id', 'x_value', 'y_value']
df_sns = df_stack.merge(df.loc[:,'group'], left_on='id', right_index=True ,how='left')
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0