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

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

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

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

Python

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

pandas

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

Q&A

解決済

1回答

1714閲覧

pandasでSyntaxErrorを解決する方法を知りたいです。

ujiblog

総合スコア2

Jupyter

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

Python

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

pandas

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

0グッド

0クリップ

投稿2021/02/23 10:34

前提・実現したいこと

現在YOUTUBEの動画にてPythonを勉強中なのですが、2点質問したいことがあります。
データベースは総務省が発表している全国の人口統計を使っています。
エラーが発生している箇所にくるまでは、動画を同じ結果が表示されています。

リンク内容
上記ページの一番したの方にあるcsvファイルを利用しています。

1点目
df_population_data.describe()を実行した際に、正解は都道府県コードや人口の総数など複数の項目が出ているのですが、和暦と西暦の項目しか出てきません。

2点目
データフレームのグループ化を行う為に、groupbyメソッドを利用したいのですが、エラーが発生してしまいます。
全角での書き直しは複数回行ましたが、解決せず、構文エラーと検索してでてきたので、正しいコードをコピペしても改善できませんでした。

descriveメソッドを実行する前までは動画を同じ結果が表示されています。

解決方法をご教授いただけると幸いです。
よろしくお願いします。

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

File "<ipython-input-118-e318965374aa>", line 1 df_population_data.groupby(by=’都道府県名’).mean()[[‘人口(総数)’, ‘人口(男)’, ‘人口(女)’]].round(0) ^ SyntaxError: invalid character in identifier

該当のソースコード

import pandas as pd df_population_data = pd.read_csv('data.csv',encoding='shift-jis') df_population_data df_population_data.info() df_population_data.describe() ##descriveメソッドを実行すると和暦と西暦しか表示されません。 df_population_data.describe().round(0) ##descriveメソッドを実行すると和暦と西暦しか表示されません。 df_population_data.groupby(by=’都道府県名’).mean()[[‘人口(総数)’, ‘人口(男)’, ‘人口(女)’]].round(0) ##groupbyメソッドを実行すると下記の構文エラーが発生してしまいます。 File "<ipython-input-118-e318965374aa>", line 1 df_population_data.groupby(by=’都道府県名’).mean()[[‘人口(総数)’, ‘人口(男)’, ‘人口(女)’]].round(0) ^ SyntaxError: invalid character in identifier

試したこと

半角()での書き換えなどを複数回行いました。
youtubeの投稿者が公開しているコードをコピペしましたが改善されずです。

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

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

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

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

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

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

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

guest

回答1

0

ベストアンサー

引用符が間違っています。

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

, は半角文字'でなければいけません。

投稿2021/02/23 10:43

KojiDoi

総合スコア13692

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

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

ujiblog

2021/02/23 22:24

回答していただきありがとうございます。 半角「'」にて書き換えを行いました。構文エラーが表示されなくなったのですが、 --------------------------------------------------------------------------- KeyError Traceback (most recent call last) <ipython-input-120-c0fc70acfe97> 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]" のようなエラーが発生しました。
ppaul

2021/02/24 03:22

回答に対して、次々に追加の質問をすると、回答者は困ります。 そして、そういう質問をする人に対して回答しないようになることを理解しておいた方が良いと思います。 これは実生活でも同じです。
ujiblog

2021/02/24 03:27

申し訳ありません。 以後気をつけて行きたいと思います。気づくことができたので、ありがとうございます。
ppaul

2021/02/24 04:56

理解してもらってよかったです。 次に出たトラブルは、別の質問としてだせば、きっと誰かが答えてくれると思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問