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

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

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

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

pandas

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

Q&A

解決済

1回答

767閲覧

pandas pivot_tableでmargins=Trueを設定すると、KeyErrorが発生します。。。

babybloom2020

総合スコア6

Python

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

pandas

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

0グッド

0クリップ

投稿2023/02/15 23:03

編集2023/02/15 23:07

実現したいこと

dtype=objectのカラムを使ったpivot_tableで、合計を表示したい。

前提

画像のようなCSVを利用し
index:「都道府県」、columns:「種別」、aggfunc:'size'
でpivot_tableを作成。
その際、margines=Trueにするとエラーが発生します。

イメージ説明

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

KeyError Traceback (most recent call last)
/usr/local/lib/python3.8/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
3360 try:
-> 3361 return self._engine.get_loc(casted_key)
3362 except KeyError as err:

10 frames
pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

pandas/_libs/hashtable_class_helper.pxi in pandas._libs.hashtable.PyObjectHashTable.get_item()

KeyError: '個人'

The above exception was the direct cause of the following exception:

KeyError Traceback (most recent call last)
/usr/local/lib/python3.8/dist-packages/pandas/core/indexes/base.py in get_loc(self, key, method, tolerance)
3361 return self._engine.get_loc(casted_key)
3362 except KeyError as err:
-> 3363 raise KeyError(key) from err
3364
3365 if is_scalar(key) and isna(key) and not self.hasnans:

KeyError: '個人'

該当のソースコード

python

1import pandas as pd 2sample_csv = pd.read_csv('/content/sample.csv') 3sample_csv.pivot_table(index='都道府県', columns='種別' ,aggfunc='size', fill_value=0, margins=True)

試したこと

size以外の集計方法(sum, count)を試しましたが、希望の数値になりませんでした。。。

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

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

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

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

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

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

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

melian

2023/02/15 23:18

aggfunc=len にするとどうなりますか?
babybloom2020

2023/02/15 23:38

お返事ありがとうございます! sample_csv.pivot_table(index='都道府県', columns='種別' ,aggfunc='len', fill_value=0, margins=True) を実行するとエラーになりました --------------------------------------------------------------------------- AttributeError Traceback (most recent call last) <ipython-input-25-f1db18fcd4be> in <module> ----> 1 sample_csv.pivot_table(index='都道府県', columns='種別' ,aggfunc='len', fill_value=0, margins=True) 6 frames /usr/local/lib/python3.8/dist-packages/pandas/core/apply.py in _try_aggregate_string_function(self, obj, arg, *args, **kwargs) 588 return f(obj, *args, **kwargs) 589 --> 590 raise AttributeError( 591 f"'{arg}' is not a valid function for '{type(obj).__name__}' object" 592 ) AttributeError: 'len' is not a valid function for 'DataFrameGroupBy' object
melian

2023/02/15 23:40

aggfunc=len にしてください。クォートは必要ありません。
babybloom2020

2023/02/15 23:46

ご教授ありがとうございました!! 「len」で実現できました!! ありがとうございます! sample_csv.pivot_table(index='都道府県', columns='種別' ,aggfunc=len, fill_value=0, margins=True)
guest

回答1

0

自己解決

melianさんにご教授いただいた内容(aggfunc=len)で解決できました!

※受付中ステータスを変更するため、こちらに記載させていただきます!
melianさん、ありがとうございました

投稿2023/02/15 23:50

babybloom2020

総合スコア6

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問