🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

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

pandas

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

Q&A

解決済

2回答

10033閲覧

pandas 行の項目ごとの平均値を算出したい

john_doe_

総合スコア354

NumPy

NumPyはPythonのプログラミング言語の科学的と数学的なコンピューティングに関する拡張モジュールです。

Python 3.x

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

pandas

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

0グッド

0クリップ

投稿2019/11/08 10:30

pandasでcsvを読み込んだ後、大学ごとの偏差値平均を算出したいと考えています。

大学名 学部 偏差値
A大学 理工学部 57
A大学 文学部 57
A大学 経済学部 56
B大学 商学部 56
B大学 経済学部 58
C大学 法学部 56
C大学 経済学部 56
C大学 文学部 55

列ごとであれば、describe()関数で簡易に算出することができますが、
列内に存在する項目ごとに、特定列に対する平均値を算出する方法をご教示いただけましたら幸甚です。
初歩的な質問かとは存じますが、何卒よろしくお願い申し上げます。

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

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

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

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

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

guest

回答2

0

pandasのgroupbyとmeanで集計すると良いでしょう。

python

1import io 2import pandas as pd 3 4data = """ 5大学名 学部 偏差値 6A大学 理工学部 57 7A大学 文学部 57 8A大学 経済学部 56 9B大学 商学部 56 10B大学 経済学部 58 11C大学 法学部 56 12C大学 経済学部 56 13C大学 文学部 55 14""" 15 16df = pd.read_table(io.StringIO(data), sep="\s+", engine="python") 17print(df) 18""" => 19 大学名 学部 偏差値 200 A大学 理工学部 57 211 A大学 文学部 57 222 A大学 経済学部 56 233 B大学 商学部 56 244 B大学 経済学部 58 255 C大学 法学部 56 266 C大学 経済学部 56 277 C大学 文学部 55 28""" 29 30hensachi_means = df.groupby("大学名").mean() 31print(hensachi_means) 32""" => 33大学名 34A大学 56.666667 35B大学 57.000000 36C大学 55.666667 37"""

投稿2019/11/08 10:46

編集2019/11/08 11:28
hayataka2049

総合スコア30935

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

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

john_doe_

2019/11/08 12:45

稚拙な質問にもかかわらず、大変丁寧にご教示いただきまして誠にありがとうございました。 大変助かりました。
guest

0

ベストアンサー

groupby(集計する列名) でグループ化して、mean() 関数を呼び出すと、グループごとの平均が計算できます。

python

1import pandas as pd 2 3df = pd.DataFrame( 4 { 5 "大学名": ["A大学", "A大学", "A大学", "B大学", "B大学", "C大学", "C大学", "C大学"], 6 "学部": ["理工学部", "文学部", "経済学部", "商学部", "経済学部", "法学部", "経済学部", "文学部"], 7 "偏差値": [57, 57, 56, 56, 58, 56, 56, 55], 8 } 9) 10 11mean = df.groupby("大学名").mean() 12print(mean) 13# 偏差値 14# 大学名 15# A大学 56.666667 16# B大学 57.000000 17# C大学 55.666667

投稿2019/11/08 10:42

tiitoi

総合スコア21956

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

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

john_doe_

2019/11/08 12:46

こんなに簡易にできたのですね。。。。 稚拙な質問にもかかわらず、大変丁寧にご教示いただきまして誠にありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問