在Pandas数据框中分组

时间:2017-05-21 04:14:05

标签: python pandas

我觉得我在这里遗漏了一些非常简单的东西,有人能告诉我这段代码有什么问题吗?

我正试图按性别分组年龄> 30和生存值= 1.

'性别'是一个布尔值(1或0),如果这会产生差异

data_r.groupby('Sex')([data_r.Age >30],[data_r.Survived == 1]).count()

这是投掷:     "' DataFrameGroupBy'对象不可调用"

任何想法?感谢

2 个答案:

答案 0 :(得分:2)

您需要先过滤,然后再分组。

data_r[(data_r.Age>30) & (data_r.Survived==1)].groupby('Sex').count()

答案 1 :(得分:1)

您可以在分组之前进行过滤。

data_r.query('Age > 30 and Survived == 1').groupby('Sex').count()

输出:

        PassengerId  Survived  Pclass  Name  Age  SibSp  Parch  Ticket  Fare  \
Sex                                                                            
female           83        83      83    83   83     83     83      83    83   
male             41        41      41    41   41     41     41      41    41   

        Cabin  Embarked  
Sex                      
female     47        81  
male       25        41  

恕我直言......我使用的是尺寸更安全,数量不包括空值(NaN值)。请注意列中的这些不同值是由NaN值引起的。

data_r.query('Age > 30 and Survived == 1').groupby('Sex').size()

输出:

Sex
female    83
male      41
dtype: int64