質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

2042閲覧

【Python】for文を活用して一つのグラフ内に、複数の折れ線グラフをいれる方法をご教示ください!

data_kazu

総合スコア8

Google Colaboratory

Google Colaboratoryとは、無償のJupyterノートブック環境。教育や研究機関の機械学習の普及のためのGoogleの研究プロジェクトです。PythonやNumpyといった機械学習で要する大方の環境がすでに構築されており、コードの記述・実行、解析の保存・共有などが可能です。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/04/11 22:50

■使用言語とライブラリ
・Python
・Google Colaboratory

■本文
現在スポーツジムにて、ユーザーの会員区分別で店舗毎(shop_name)のユーザー数の推移を
matplotlibのplotとfor文を使って、一つのグラフの中にまとめたいと考えております。
こちらに当たって、以下エラーが発生しており、困っております。

※実施手順
0.元データをshop_userという変数にいれたとします。
↓↓イメージ
イメージ説明

1.元データをフィルタで抽出(今回はナイト会員を例にしてます)

shop_user = shop_user.loc[shop_user["user_type"] == "ナイト会員"] shop_user

↓↓アウトプットイメージ
イメージ説明

2.ショップ毎のユーザー推移(月日であるmeasurement_monthごと)をユーザーIDから算出

shop_nightuser_uupivot = shop_user.pivot_table(index = "measurement_month", columns = "store_name", values = "user_id", aggfunc = "count", fill_value = 0) shop_nightuser_uupivot

↓↓アウトプットイメージ
イメージ説明

3.横軸をmeasurement_month、縦軸を各store_nameにした折れ線グラフを記載(一つのグラフ内にまとめる)

for i in list(shop_nightuser_uupivot): plt.plot(shop_nightuser_uupivot["measurement_month"], shop_nightuser_uupivot[i]) plt.legend() plt.show()

※ここで以下のようなエラーが発生します。

KeyError Traceback (most recent call last) /usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3360 try: -> 3361 return self._engine.get_loc(casted_key) 3362 except KeyError as err: 4 frames pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item() KeyError: 'measurement_month' The above exception was the direct cause of the following exception: KeyError Traceback (most recent call last) /usr/local/lib/python3.7/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance) 3361 return self._engine.get_loc(casted_key) 3362 except KeyError as err: -> 3363 raise KeyError(key) from err 3364 3365 if is_scalar(key) and isna(key) and not self.hasnans: KeyError: 'measurement_month'

measurement_monthのKeyErrorとなっておりますが、
measurement_monthはデータフレームを表示しても入っているため、
何が要因でエラーが起きているかが理解できておらず、
こちらなにかおわかりになる方がいらっしゃれば、
ご教示いただけますと幸いです。

※またコードや考え方がそもそも間違っているなども、ご指摘いただけますと幸いです。

恐れ入りますが、よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

pivot_table()したので、measurement_monthはインデックスになっているのでは。
また、plt.show()はループですべてを書き終わってから、一回だけ実行すればいいです。

python

1for i in list(shop_nightuser_uupivot): 2 plt.plot(shop_nightuser_uupivot.index, shop_nightuser_uupivot[i]) 3plt.legend() 4plt.show()

投稿2022/04/12 07:19

bsdfan

総合スコア4567

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

data_kazu

2022/04/12 07:33

>bsdfanさん ご指摘いただきまして、ありがとうございます! indexにしているものを「shop_nightuser_uupivot..index」で表現するのを理解が足りておりませんでした、、 先ほど無事に実行できました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問