我觉得我在这里遗漏了一些非常简单的东西,有人能告诉我这段代码有什么问题吗?
我正试图按性别分组年龄> 30和生存值= 1.
'性别'是一个布尔值(1或0),如果这会产生差异
data_r.groupby('Sex')([data_r.Age >30],[data_r.Survived == 1]).count()
这是投掷: "' DataFrameGroupBy'对象不可调用"
任何想法?感谢
答案 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