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

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

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

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

pandas

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

Q&A

解決済

1回答

1443閲覧

Pandasのsum関数の引数について

SuzuAya

総合スコア71

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

pandas

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

0グッド

0クリップ

投稿2021/04/14 05:08

前提・実現したいこと

以下のようなデータフレームから、①生徒ごと(=行ごと)の成績の合計値と②科目ごと(=列ごと)の合計値を出したいと思っています。

引数のaxisについて、0や1ではなく、'index'や'columns'と文字列で指定するようにしているのですが(うろ覚えによる間違いを防ぐため)、
何度試してもaxis='index'の時に列ごとの合計値を、axis='columns'の時に行ごとの合計値が算出されてしまいます。
pandasのsum関数の時は引数は文字列ではなく0か1で指定しないとうまく動作しないのでしょうか?

該当のソースコード

Python

1import pandas as pd 2 3df2 = pd.read_csv('data.csv') 4df2 = df2.drop(['class'], axis='columns') 5print('生徒ごと', df2.sum(axis='index')) 6#生徒ごと name ABCDEFGHBD 7#English 677 8#Mathmatics 738 9#History 774 10 11print('科目ごと',df2.sum(axis='columns')) 12#科目ごと 0 200 13#1 238 14#2 230 15#3 173 16#4 237 17#5 242 18#6 237 19#7 221 20#8 238 21#9 173

試したこと

axis=0, axis=1で指定した時は期待通りの動作をしました。

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

pandasのバージョンは1.1.5で、google colabを使用しています。

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

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

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

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

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

guest

回答1

0

ベストアンサー

axis='index'の時に列ごとの合計値を、axis='columns'の時に行ごとの合計値が算出されてしまいます。

それが仕様です。
'index'方向に総和をとるというのは、縦方向に足し算するという意味です。
'columns'方向に総和をとるというのは、横方向に足し算するという意味です。

投稿2021/04/14 05:54

ppaul

総合スコア24666

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

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

SuzuAya

2021/04/14 06:21

>ppaul様 早速のご回答ありがとうございます!理解がクリアになりました。大変助かりました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問