質問するログイン新規登録
Python

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

pandas

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

Q&A

解決済

1回答

4051閲覧

IndexError: index -1 is out of bounds for axis 0 with size 0を解決したいです。

jury_new

総合スコア31

Python

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

pandas

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

0グッド

0クリップ

投稿2020/08/14 01:12

編集2020/08/14 02:04

0

0

##やりたいこと
①エラーを解決したいです。
②エラーの示しているindex,axis,sizeの部分がどこを示し下記の出力とどう関係があるのかを知りたいです。

python

1Empty DataFrame 2Columns: [] 3Index: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, ...]

##エラーまでの経緯・実行内容
seabornのpairplotによって「西暦・地域階層コード・(常駐地)東京都」を値とするグラフ作成を行おうとしています。最初にcsvを読み込みましたが、unnamedによりKEYエラーが多発したため

pd.MultiIndex.from_frame

を追加しやり直しました。
その後下記のエラーになりました。

Traceback (most recent call last): File "population.py", line 22, in <module> sns.pairplot(dro) #一部省略 IndexError: index -1 is out of bounds for axis 0 with size 0

##試み

python

1import csv 2import pandas as pd 3import seaborn as sns 4import matplotlib 5matplotlib.use('TkAgg') 6import matplotlib.pyplot as plt 7import japanize_matplotlib 8 9road = pd.read_csv("~~~~.csv", 10 encoding="SHIFT-JIS", 11 keep_default_na=False, # 空欄をNaで置き換えない 12 header=None, # headerは指定しない 13 index_col=[0], 14 engine='python') 15 16road.columns = pd.MultiIndex.from_frame(road.iloc[:11, :].T) 17print(road) 18 19dro = road.dropna(how="all") 20new = dro.loc[:,["年次(西暦)","地域階層コード","(常住地)東京都"]] 21print(new) 22sns.pairplot(dro) 23plt.savefig("population.png") 24plt.show()

python

1 1 2 3 4 5 ... 65 66 67 68 69 20 ... 31 東京都昼間人口の予測 ... 42 ... 53 ... 64 ... 75 ... 8... ... .. ... .. ... ... .. .. .. .. .. 91160 2040 1 11000 3 (通学地)埼玉県 ... 101161 2040 1 12000 3 (通学地)千葉県 ... 111162 2040 1 14000 3 (通学地)神奈川県 ... 121163 2040 1 99000 3 (通学地)他の道府県 ... 131164 2040 0 99999 3 通学地別常住人口(総数) ... 14 15[1164 rows x 69 columns] 161 東京都昼間人口の予測 ... 172 ... 183 ... 194 ... 205 ... 216 ... 227 ... 238 ... 249 ... 2510 地域階層コード ... 1 0 2611 地域コード ... 11000 12000 14000 99000 99999 270 ... 281 東京都昼間人口の予測 ... 292 ... 303 ... 314 ... 325 ... 33.. ... .. ... .. ... ... ... ... ... ... ... 341160 2040 1 11000 3 (通学地)埼玉県 ... 351161 2040 1 12000 3 (通学地)千葉県 ... 361162 2040 1 14000 3 (通学地)神奈川県 ... 371163 2040 1 99000 3 (通学地)他の道府県 ... 381164 2040 0 99999 3 通学地別常住人口(総数) ... 39 40[1164 rows x 69 columns] 41Empty DataFrame 42Columns: [] 43Index: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, ...] 44 45[1164 rows x 0 columns] 46sys:1: PerformanceWarning: indexing past lexsort depth may impact performance. 47

error

1IndexError: index -1 is out of bounds for axis 0 with size 0

エラーのでているインデックスの値はおいておいて、まずエラーの内容について調べました。
すると、、
???falseとnanの二値しか取り得ないものが入っているためエラーが出ている???
と出てきたため。
欠損値の削除をしましたが、エラーは変わらず変化はありません。
##csvについて
一部の表示です。
データ先;https://www.toukei.metro.tokyo.lg.jp/tyosoku/ty-data.htm
の8章です。

1,東京都昼間人口の予測,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
2,,,,,,第8表   区市町村別昼夜間移動表 −総数、通勤、通学−   (単位 人),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
3,,,,,,注1) 本表は、報告書ベースの統計表第8-1から8-6表、第9-1から9-6表、第10-1から10-6表を一つにまとめたものである。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
4,,,,,,注2) 2015年10月1日時点は総務省統計局「国勢調査」に基づく数値であり、従業地「不詳」、通学地「不詳」及び労働力状態「不詳」を含む。2020年以降については、各年10月1日時点の予測人口である。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
5,,,,,,注3) 常住地/従業地・通学地コードが1の場合の対角線上(常住地と従業地・通学地が同一地域)の人口には、自宅就業者及びその他人口が含まれる。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
6,,,,,,注4) 地域コードは、総務省統計局「国勢調査」に基づく。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
7,,,,,,注5) 地域階層コードは、0:0階層(縦方向の計では常住人口(総数)レベル、横方向の計では昼間人口(総数)レベル)、1:1階層(東京都、埼玉県、千葉県、神奈川県、その他道府県レベル)、2:2階層(区部、多摩・島しょレベル)、3:3階層(市部・郡部・島部レベル)、4:4階層(区市町村レベル),,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
8,,,,,,注6) 従業地・通学地コードは、1:従業地・通学地、2:従業地、3:通学地である。横方向は常住地のみである。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
9,,,,,,注7) 常住人口(総数)=東京都+埼玉県+千葉県+神奈川県+その他道府県で、縦方向、横方向共に同じである。,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
10,,,,,地域階層コード,1,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,3,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,4,4,4,4,3,1,1,1,1,0
11,,,,,地域コード,13000,13100,13101,13102,13103,13104,13105,13106,13107,13108,13109,13110,13111,13112,13113,13114,13115,13116,13117,13118,13119,13120,13121,13122,13123,13500,13200,13201,13202,13203,13204,13205,13206,13207,13208,13209,13210,13211,13212,13213,13214,13215,13218,13219,13220,13221,13222,13223,13224,13225,13227,13228,13229,13300,13303,13305,13307,13308,13350,11000,12000,14000,99000,99999
12,年次(西暦),地域階層コード,地域コード,従業地・通学地コード,地域名,(常住地)東京都,(常住地)区部,(常住地)千代田区,(常住地)中央区,(常住地)港区,(常住地)新宿区,(常住地)文京区,(常住地)台東区,(常住地)墨田区,(常住地)江東区,(常住地)品川区,(常住地)目黒区,(常住地)大田区,(常住地)世田谷区,(常住地)渋谷区,(常住地)中野区,(常住地)杉並区,(常住地)豊島区,(常住地)北区,(常住地)荒川区,(常住地)板橋区,(常住地)練馬区,(常住地)足立区,(常住地)葛飾区,(常住地)江戸川区,(常住地)多摩・島しょ,(常住地)市部,(常住地)八王子市,(常住地)立川市,(常住地)武蔵野市,(常住地)三鷹市,(常住地)青梅市,(常住地)府中市,(常住地)昭島市,(常住地)調布市,(常住地)町田市,(常住地)小金井市,(常住地)小平市,(常住地)日野市,(常住地)東村山市,(常住地)国分寺市,(常住地)国立市,(常住地)福生市,(常住地)狛江市,(常住地)東大和市,(常住地)清瀬市,(常住地)東久留米市,(常住地)武蔵村山市,(常住地)多摩市,(常住地)稲城市,(常住地)羽村市,(常住地)あきる野市,(常住地)西東京市,(常住地)郡部,(常住地)瑞穂町,(常住地)日の出町,(常住地)檜原村,(常住地)奥多摩町,(常住地)島部,(常住地)埼玉県,(常住地)千葉県,(常住地)神奈川県,(常住地)他の道府県,常住地別昼間人口(総数)
13,2015,1,13000,1,(従業地・通学地)東京都,13014330,8956332,56811,137299,237820,327004,213036,193023,248293,482324,371279,268209,679107,875112,219387,321290,551261,282757,328081,204895,542568,699994,643000,422588,651194,4057998,3975048,555336,171907,141223,183194,133172,251901,108718,223053,377248,118319,184285,181200,142053,118775,71172,57015,76365,82605,69301,111360,69521,140483,80187,54214,79394,193047,56480,31954,17154,2193,5179,26470,936100,716881,1068505,184589,15920405
14,2015,2,13100,1,(従業地・通学地)区部,9408634,8833778,56235,136457,236160,322545,210921,191999,246879,479102,368418,265465,674133,853216,216129,313708,527934,279608,325456,203661,537615,680217,640255,420437,647228,574856,573189,41848,16592,37510,43677,5866,37602,9365,52253,44443,25799,28960,19585,21438,20760,10419,3281,21154,8116,12015,21176,3450,19598,14018,2870,3382,48012,1618,993,527,27,71,49,844151,699698,919762,161347,12033592
15,2015,4,13101,1,(従業地・通学地)千代田区,460299,385541,45177,9615,10710,16157,17368,8500,10942,24801,13938,11357,18899,31346,9542,13154,23853,12107,12303,8103,17915,18847,15506,13185,22216,74758,74550,5420,2212,6380,5985,710,4558,1298,6701,5454,4179,3716,2692,2374,3189,1646,370,2290,903,1347,2450,345,2579,1674,369,452,5257,204,119,69,3,13,4,116199,123496,126082,26992,853068
16,2015,4,13102,1,(従業地・通学地)中央区,346891,308673,1601,99033,6162,6978,6197,6666,10044,24736,9689,6306,14002,15713,4669,6793,11809,5773,6167,5373,9245,10077,11931,10445,19264,38218,38142,2623,1119,2962,3128,354,2425,609,3402,3075,2017,1888,1277,1256,1651,882,203,1232,498,644,1209,191,1299,862,179,166,2991,75,46,26,1,2,1,72641,94566,78723,15782,608603
17,2015,4,13103,1,(従業地・通学地)港区,571815,511803,2299,8714,192927,11272,9239,6859,9744,20407,27916,17014,35368,33192,12248,10820,19377,9451,9750,6331,13838,15635,12301,10886,16215,60012,59856,4459,1638,4335,4666,551,4269,880,5538,5663,2855,2794,2116,1762,2299,1167,305,2394,748,931,1751,266,2210,1631,273,285,4070,146,88,53,2,3,10,86878,90254,170627,21211,940785
18,2015,4,13104,1,(従業地・通学地)新宿区,551983,464146,1486,2571,3732,249623,7111,3068,4408,10059,6794,5998,9474,22166,8863,20885,24750,11210,7908,3850,13617,21309,7725,6058,11481,87837,87554,7044,2824,5187,5549,1009,6108,1588,8238,5836,3989,5094,3254,3722,3292,1531,588,2520,1487,1336,2616,661,3288,2119,503,623,7548,281,164,99,4,14,2,86735,47578,76109,13144,775549

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

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

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

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

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

kirara0048

2020/08/14 01:34

roadやdroはどのようなデータですか?
can110

2020/08/14 01:43

「下記の出力」は、コード上のprint文の出力結果でしょうか? また、実際に「sns.pairplot(dro)」に渡しているdroの内容が分かるよう「print(dro)」した結果を記載ください。 さらに元のCSVデータを公開すると他者が検証でき回答が得られやすくなります。
jury_new

2020/08/14 01:47

ご回答ありがとうございます。只今更新します。
jury_new

2020/08/14 02:05

更新致しました!何卒よろしくお願い致します。
guest

回答1

0

ベストアンサー

元のCSVのカタチがpandasでの読み込みに向いていないのでskiprows,usecolsを指定して必要な範囲のみ読み込むようにすればよいです。

Python

1import pandas as pd 2import seaborn as sns 3import matplotlib.pyplot as plt 4import japanize_matplotlib 5 6pd.set_option('display.unicode.east_asian_width', True) # 日本語ずれないように 7 8df = pd.read_csv('https://www.toukei.metro.tokyo.lg.jp/tyosoku/ty20rv0800.csv', encoding='shift-jis', skiprows=11, usecols=[1,2,6]) 9print(df.head()) 10""" 11 年次(西暦) 地域階層コード (常住地)東京都 120 2015 1 13014330 131 2015 2 9408634 142 2015 4 460299 153 2015 4 346891 164 2015 4 571815 17""" 18sns.pairplot(df) 19plt.show()

イメージ説明

投稿2020/08/14 02:32

can110

総合スコア38352

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

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

jury_new

2020/08/14 02:38

ご回答ありがとうございます!無事できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.30%

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

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

質問する

関連した質問