2016-10-31 6 views
1

describe関数のグループ化を特定の列の異なる値で使うことができますか?今、私が説明する関数を使用する場合は代わりにした場合、私は、全体のデータフレームの記述統計量Groupby Pandas(Python 3.5.1)で関数を記述する

df.describe() 
    age preTestScore postTestScore 
count 5.000000 5.000000 5.000000 
mean 45.400000 12.800000 61.600000 
std  18.460769 13.663821 24.905823 
min  24.000000 2.000000 25.000000 
25%  36.000000 3.000000 57.000000 
50%  42.000000 4.000000 62.000000 
75%  52.000000 24.000000 70.000000 
max  73.000000 31.000000 94.000000 

を取得

import pandas as pd 
data = {'gender': ['male', 'female', 'female', 'male',' female'], 
     'name': ['Jason', 'Molly', 'Tina', 'Jake', 'Amy'], 
     'age': [42, 52, 36, 24, 73], 
     'preTestScore': [4, 24, 31, 2, 3], 
     'postTestScore': [25, 94, 57, 62, 70]} 
df = pd.DataFrame(data, columns = ['gender', 'name', 'age', 'preTestScore', 'postTestScore']) 

:たとえば

、の私は、次のデータフレームを持っているとしましょう私はジェンダー別にグループ分けし、ジェンダー別の記述統計を得たかったので(おそらく2つの別々のアウトプット)、どうすればいいのですか?

答えて

1

あなたはgroupby.describeを使用することができます。

df.groupby('gender').describe() 
Out: 
        age postTestScore preTestScore 
gender            
female count 3.000000  3.000000  3.000000 
     mean 53.666667  73.666667  19.333333 
     std 18.556221  18.770544  14.571662 
     min 36.000000  57.000000  3.000000 
     25% 44.000000  63.500000  13.500000 
     50% 52.000000  70.000000  24.000000 
     75% 62.500000  82.000000  27.500000 
     max 73.000000  94.000000  31.000000 
male count 2.000000  2.000000  2.000000 
     mean 33.000000  43.500000  3.000000 
     std 12.727922  26.162951  1.414214 
     min 24.000000  25.000000  2.000000 
     25% 28.500000  34.250000  2.500000 
     50% 33.000000  43.500000  3.000000 
     75% 37.500000  52.750000  3.500000 
     max 42.000000  62.000000  4.000000 
+1

パンダを本当に印象的です! –

+0

ありがとう@ayhan! 'groupby'に複数の列を置くことは可能ですか? – Vincent

+0

@Vincent確かに。文字列の代わりに、文字列のリストを渡すことができます: 'df.groupby(['gender'、 'age'])。describe()' – ayhan

1

次の2つの別々の出力をしたい場合は、次の操作を行うことができます:

df[df.gender == 'male'].describe() 
df[df.gender == 'female'].describe() 
関連する問題