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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

Q&A

解決済

3回答

1190閲覧

2つのDataFrame、しかしグラフは1つしか表示されず

okahijiki

総合スコア404

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

pandas

Pandasは、PythonでRにおけるデータフレームに似た型を持たせることができるライブラリです。 行列計算の負担が大幅に軽減されるため、Rで行っていた集計作業をPythonでも比較的簡単に行えます。 データ構造を変更したりデータ分析したりするときにも便利です。

0グッド

0クリップ

投稿2020/02/11 09:51

作成した2つのDataFrameで折れ線グラフを描いてみたのですが、一方の折れ線グラフしか表示されません。正常に、2つの折れ線グラフを表示させるには、どのようにしたら良いでしょうか。ご教示くださいませ。

python

1import pandas as pd 2 3# 新潟の天気を示すウェッブのurlを変数に入れる 4url_n='http://www.data.jma.go.jp/obd/stats/etrn/view/monthly_s1.php?prec_no=54&block_no=47604&year=2019&month=&day=&view=' 5 6# ウェッブのスクレイピング、日照時間の抽出、マルチインデックスになっているため、それを解消した 7SunshineHoursNGT= pd.read_html(url_n)[0]['日照時間(h)'].droplevel(1, axis=1) 8 9# 列のインデックスに、1月 2月....12月のラベルをつけた 10SunshineHoursNGT.index=['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] 11 12SunshineHoursNGT

新潟の年間日朝時間

イメージ説明

python

1# 同様に、東京の天気を示すウェッブのurlを変数に入れる 2url_t=('http://www.data.jma.go.jp/obd/stats/etrn/view/monthly_s1.php?prec_no=44&block_no=47662&year=2019&month=&day=&view=') 3 4SunshineHoursTKY= pd.read_html(url_t)[0]['日照時間(h)'].droplevel(1, axis=1) 5 6SunshineHoursTKY.index=['1月','2月','3月','4月','5月','6月','7月','8月','9月','10月','11月','12月'] 7 8SunshineHoursTKY

イメージ説明

python

1import matplotlib.pyplot as plt 2plt.rcParams['font.family'] = 'IPAPGothic' 3 4ax = SunshineHoursNGT.plot(color='#fd7e00',linewidth = 3.0) 5SunshineHoursTKO.plot(color='#3B7960',linewidth = 3.0, ax=ax) 6plt.show()

TypeError: Empty 'DataFrame': no numeric data to plot

イメージ説明

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

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

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

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

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

guest

回答3

0

TypeError: Empty 'DataFrame': no numeric data to plotというエラーが出ています。
東京の12月に「128.6)」という値が入っており、文字列の列と認識されているためだと思われます。
東京データを確認し、適切に修正ください。
日照時間列にてreplaceを使い「)」を空文字に置換した後に数値型に変換でよいかと思います。

投稿2020/02/11 10:24

can110

総合スコア38233

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

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

okahijiki

2020/02/11 12:26

ウェッブサイト上の元のデータをチェックしてみました。 ご指摘の通り、東京の日照量のデータの12月分には、なぜか、「 ) 」が付いていました。 抽出した「日照時間」にも、あたらめて見てみると、たしかに「 ) 」が付いています。 エラーデータも、一応チェックしてはいたのですけれど、そこまでは気が付かなかった次第。ご指摘、ありがとうございます。
guest

0

ベストアンサー

対応方法はcan110さんと同じです。
以下の方法で対処できると思います。

df['日照時間(h)'] = df['日照時間(h)'].str.replace(')', '') df['日照時間(h)'] = df['日照時間(h)'].astype('float')

参考資料
https://note.nkmk.me/python-pandas-replace/

投稿2020/02/11 10:38

bamboo-nova

総合スコア1408

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

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

okahijiki

2020/02/11 12:26

ご指摘、ありがとうございます。みなさま方には感謝、であります。コードを貼っていただいて、助かりました。原因が分かり、もし当コードがなかったら、また、しばし、よろよろしていたと存じます。
guest

0

エラーメッセージにあるようにnumeric(数値)でない値が存在するためplotできていないようです。

TypeError: Empty 'DataFrame': no numeric data to plot

実際に info() で型を確認してみると

python

1SunshineHoursTKY.info() 2 3<class 'pandas.core.frame.DataFrame'> 4Index: 12 entries, 1月 to 125Data columns (total 1 columns): 6日照時間(h) 12 non-null object 7dtypes: object(1) 8memory usage: 192.0+ bytes 9

のようにobject型になっています。

そこで個別の値をよく見てみると

12月 のvalueで 128.6)のように余分なカッコが入ってしまっています。

この)をうまく除去すればplotできそうです。

投稿2020/02/11 10:35

編集2020/02/11 10:37
Schumi543

総合スコア53

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

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

okahijiki

2020/02/11 12:26

infoというメソッドがあるのですね。情報の読み方、折をみて、勉強してまいります。ご指摘のとおり、余分なカッコが原因でした。ご指摘ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問