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

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

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

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

pandas

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

Q&A

2回答

6587閲覧

pandasのkeyerrorが解決できません。

mepo

総合スコア0

Jupyter

Jupyter (旧IPython notebook)は、Notebook形式でドキュメント作成し、プログラムの記述・実行、その実行結果を記録するツールです。メモの作成や保存、共有、確認などもブラウザ上で行うことができます。

pandas

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

1グッド

0クリップ

投稿2021/08/06 23:48

編集2021/08/07 00:30

前提・実現したいこと

python開始2日目です。
pandasでのkeyerrorが解決できません。
お力添え願います。

データはこちらの一番上のCSVデータ 男女別人口-全国,都道府県(大正9年~平成27年)を使っています。
リンク内容

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


KeyError Traceback (most recent call last)
<ipython-input-149-652510967263> in <module>
----> 1 df_population_data.groupby(by='都道府県名').mean()[['人口(総数)','人口(男)','人口(女)']].round(0)

~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/frame.py in getitem(self, key)
2906 if is_iterator(key):
2907 key = list(key)
-> 2908 indexer = self.loc._get_listlike_indexer(key, axis=1, raise_missing=True)[1]
2909
2910 # take() does not accept boolean indexers

~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexing.py in _get_listlike_indexer(self, key, axis, raise_missing)
1252 keyarr, indexer, new_indexer = ax._reindex_non_unique(keyarr)
1253
-> 1254 self._validate_read_indexer(keyarr, indexer, axis, raise_missing=raise_missing)
1255 return keyarr, indexer
1256

~/opt/anaconda3/lib/python3.8/site-packages/pandas/core/indexing.py in _validate_read_indexer(self, key, indexer, axis, raise_missing)
1296 if missing == len(indexer):
1297 axis_name = self.obj._get_axis_name(axis)
-> 1298 raise KeyError(f"None of [{key}] are in the [{axis_name}]")
1299
1300 # We (temporarily) allow for some missing keys with .loc, except in

KeyError: "None of [Index(['人口(総数)', '人口(男)', '人口(女)'], dtype='object')] are in the [columns]"

該当のソースコード

df_population_data.groupby(by='都道府県名').mean()[['人口(総数)','人口(男)','人口(女)']].round(0)

試したこと

かっこを半角や全角にしたり、
カンマの後ろにスペースを増やしました。

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

pythonのjupyter rabを使用しています。

ここにより詳細な情報を記載してください。

$ import pandas as pd

$ df_population_data = pd.read_csv('data.csv', encoding="shift-jis")

$ df_population_data.groupby(by='都道府県名').mean()[['人口(総数)','人口(男)','人口(女)']].round(0)

xozeit👍を押しています

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

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

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

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

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

meg_

2021/08/07 00:18

サンプルデータを提示されると回答しやすくなるかと思います。
mepo

2021/08/07 00:30

回答ありがとうございます。追記いたしました。よろしくお願いいたします。
ppaul

2021/08/07 03:34

96年間の平均人口を調べることにどういう意味があるのですか?
guest

回答2

0

キノコードさんの動画で勉強始めたら全く同じ状況になったので助かりました!

投稿2022/10/29 07:36

xozeit

総合スコア19

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

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

0

print(df_population_data.groupby(by='都道府県名').mean())で確認すると分かりますが、結果は和暦(年)西暦(年)のカラムしか持っていません。その原因はデータ型です。(人口データに欠損値-があるためです)
エラーが発生した際はコードを細分化してデバッグしていって原因を特定しましょう。

Python

1df_population_data = df_population_data[df_population_data['人口(総数)'] != '-'] 2df_population_data['人口(総数)'] = df_population_data['人口(総数)'].astype('float') 3df_population_data['人口(男)'] = df_population_data['人口(男)'].astype('float') 4df_population_data['人口(女)'] = df_population_data['人口(女)'].astype('float') 5df_population_data.groupby(by='都道府県名').mean()[['人口(総数)','人口(男)','人口(女)']].round(0) 6 7# 人口(総数) 人口(男) 人口(女) 8#都道府県名 9#三重県 1534021.0 743367.0 790655.0 10#京都府 2135318.0 1044094.0 1091224.0 11#人口集中地区 76263636.0 37498317.0 38765320.0 12#人口集中地区以外の地区 45110512.0 21946810.0 23163701.0 13#佐賀県 830574.0 395551.0 435024.0 14#全国 98797992.0 48528468.0 50269525.0 15#兵庫県 4233525.0 2067583.0 2165942. 16# ・・・

投稿2021/08/07 02:11

meg_

総合スコア10760

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問