2017-11-09 19 views
0

データフレームで保持されている件名に対して実行されたテストのリストがあります。複数のテストがあり、それらはすべて異なる日付で複数回繰り返されています。Pythonデータフレームで複数の値を平均化する

pythonを使用して各テストの平均値を生成したいとします。私はiterrows()関数を使ってテスト名と値を生成することができますが、それから動かなくなります。

以下に、テーブル構造の例を示しました。実際には、このデータセットには約30個のテストと200個以上の行があります。

これはコードが拡張される大規模なデータベース(1000000+行)の小さなサブセットです。そのため、結果をブルートフォースしたくありません。 多くの感謝!


| Test | Value | Date 
#--------#--------#--------  
| Test A | 31  | Date1 
| Test B | 14  | Date2 
| Test A | 25  | Date3 
| Test A | 26  | Date1 
| Test B | 8  | Date1 

答えて

0

スプリット適用-組み合わせのパターンで、この問題を考えます。このケースでは、これは良いです

(値の平均関数を適用)一緒にすべてのテスト(テスト&によって設定された分割されたデータは、得られるデータセットを組み合わせる)&は、すべての値の平均値を計算するグループにしたいですパンダのグループ化と集計機能を説明する記事:http://pbpython.com/pandas-grouper-agg.html

import pandas as pd 
import numpy as np 
df = pd.DataFrame(
    {'Test': ['Test A', 'Test B', 'Test A', 'Test A', 'Test B'], 
    'Value': [31, 14, 25, 26, 8], 
    'Date': ['Date1', 'Date2', 'Date3', 'Date1', 'Date2']} 
) 
df.Value.groupby(df.Test).agg(np.mean) 
+0

これは完璧に、ありがとう! –

関連する問題