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

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

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

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

Python

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

Q&A

1回答

2364閲覧

ufunc 'isnan' not supported for the input types エラーのcsvでの対処方法

kumasann

総合スコア0

Google Colaboratory

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

Python

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

0グッド

0クリップ

投稿2021/09/30 03:12

編集2021/09/30 03:41

前提・実現したいこと

google colab で地図上に人口数で色分けするプログラムを書いています。
将来的には平均寿命等で色分けしたいと思っています。
以下のサイトのコードを模写しながら実行していました。
https://96lovefootball.hatenablog.com/entry/2018/11/05/160000
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

TypeError Traceback (most recent call last)
<ipython-input-92-11e2a2c83cb5> in <module>()
7 columns=['行政区分コード', '日本人世帯数'],
8 key_on='feature.properties.N03_007',
----> 9 fill_color='PuBu'
10 ).add_to(m)
11

/usr/local/lib/python3.7/dist-packages/folium/features.py in init(self, geo_data, data, columns, key_on, bins, fill_color, nan_fill_color, fill_opacity, nan_fill_opacity, line_color, line_weight, line_opacity, name, legend_name, overlay, control, show, topojson, smooth_factor, highlight, **kwargs)
962 if color_data is not None and key_on is not None:
963 real_values = np.array(list(color_data.values()))
--> 964 real_values = real_values[~np.isnan(real_values)]
965 _, bin_edges = np.histogram(real_values, bins=bins)
966

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

該当のソースコード

Python

1 2!pip install folium==0.8.3 3 4fukushima_location = [37.750299, 140.467551] 5 6import pandas as pd 7fukushima_data = pd.read_csv('/content/gdrive/MyDrive/data/fukushima_population.csv', encoding='utf-8') 8fukushima_data.head() 9 10fukushima_data['行政区分コード'] = fukushima_data['行政団体コード'].astype('str') 11fukushima_data['行政区分コード'] = fukushima_data['行政区分コード'].str[:4] 12fukushima_data['行政区分コード'] = fukushima_data['行政区分コード'].str.zfill(5) 13 14geojson = '/content/gdrive/MyDrive/data/fukushima.geojson' 15 16!pip install folium 17import folium 18 19m = folium.Map(location=fukushima_location,tiles='cartodbpositron',zoom_start=10) 20folium.Choropleth( 21 geo_data=fukushima_geojson, 22 name='choropleth', 23 data=fukushima_data, 24 columns=['行政区分コード', '日本人世帯数'], 25 key_on='feature.properties.N03_007', 26 fill_color='PuBu' 27).add_to(m) 28 29folium.LayerControl().add_to(m) 30 31m.save('/content/gdrive/MyDrive/data/fukushima.html')

試したこと

他のサイトで調べたのですが、該当箇所が見当たらず手詰まりになってしまいました。初心者のため見逃している部分も多々あると思いますが、ご指摘よろしくおねがいします。

補足情報(FW/ツールのバージョンなど)

fukushima_population.csvはhttps://www.pref.fukushima.lg.jp/sec/01145a/juukijinkou.html
fukushima.geojsonはhttps://nlftp.mlit.go.jp/ksj/index.html
市区町村コードはhttps://www.soumu.go.jp/denshijiti/code.htmlから取得しました。市区町村コードはcsvファイルに直接入れました。

csvの中身
市町村別人口、世帯数(令和3年1月1日現在),男日本人,男外国人,男合計,女日本人,女外国人,女合計,日本人合計,外国人合計,合計,日本人世帯数,外国人世帯,複数国籍世帯,世帯合計,行政団体コード
福島市,"133,371",791,"134,162","140,344","1,140","141,484","273,715","1,931","275,646","122,223","1,041",614,"123,878",72010
会津若松市,"55,586",370,"55,956","60,580",491,"61,071","116,166",861,"117,027","51,325",491,214,"52,030",72028
郡山市,"156,389","1,338","157,727","162,048","1,619","163,667","318,437","2,957","321,394","140,387","1,852",658,"142,897",72036
いわき市,"155,409","1,352","156,761","160,188","1,541","161,729","315,597","2,893","318,490","144,235","1,863",695,"146,793",72044
白河市,"29,690",286,"29,976","29,760",374,"30,134","59,450",660,"60,110","24,515",377,180,"25,072",72052
須賀川市,"37,175",201,"37,376","38,252",264,"38,516","75,427",465,"75,892","29,442",300,93,"29,835",72079

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

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

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

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

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

can110

2021/09/30 03:21

参考のサイトと提示コードの内容がかけ離れているように思います。 実際に現象が再現するデータおよびコード全体を提示しないと適切な回答は得られにくいとおもいます。
kumasann

2021/09/30 03:22

御指摘ありがとうございます。質問を編集します。
can110

2021/09/30 03:31 編集

インデントがなくコードが読めません(実行できません)。以下を参考に修正ください。 https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif また、fukushima.geojsonの入手元(方法)およびfukushima_population.csvデータ内容についても提示(ソースコード欄にテキストとして)ください。 エラーが再現するのであれば、先頭数行だけでもよいです。
kumasann

2021/09/30 03:43

有難うございます。編集しましたので、また五色いただけると幸いです。
can110

2021/09/30 06:57

「fukushima.geojson」ですが、提示HPにたくさんあるリンク先から見つけられませんでした。 具体的なダウンロード方法を提示できますでしょうか?
guest

回答1

0

結論としては、.csvデータの数値部分に桁区切りの,が含まれており、データが文字列として認識されているのが原因のようです。
表計算ソフトで適切に保存しなおすことで桁区切りを取り除くとエラーなく動作しました。

fukushima_population.csv

PlainText

1市町村別人口、世帯数(令和3年1月1日現在),男日本人,男外国人,男合計,女日本人,女外国人,女合計,日本人合計,外国人合計,合計,日本人世帯数,外国人世帯,複数国籍世帯,世帯合計,行政団体コード 2福島市,133371,791,134162,140344,1140,141484,273715,1931,275646,122223,1041,614,123878,72010 3会津若松市,55586,370,55956,60580,491,61071,116166,861,117027,51325,491,214,52030,72028 4郡山市,156389,1338,157727,162048,1619,163667,318437,2957,321394,140387,1852,658,142897,72036 5いわき市,155409,1352,156761,160188,1541,161729,315597,2893,318490,144235,1863,695,146793,72044 6白河市,29690,286,29976,29760,374,30134,59450,660,60110,24515,377,180,25072,72052 7須賀川市,37175,201,37376,38252,264,38516,75427,465,75892,29442,300,93,29835,72079

なお以下結果例での.geojsonTOP 国土数値情報 行政区域データ
N03-190101_07_GML.zip内のN03-19_07_190101.geojsonを利用しました。

イメージ説明

投稿2021/09/30 07:40

can110

総合スコア38341

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

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

kumasann

2021/09/30 14:05

不十分な質問内容にも関わらず丁寧に艇王してくださり、有難うございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問