熊猫数据帧。消除匹配列中某些条件的行

时间:2018-01-14 18:25:37

标签: python pandas dataframe pandas-groupby

我有下表:

Days   Age  Sex
5      39   F
NaN    54   M
4      26   M
1      42   M
4      29   M

我想分别计算男性和女性的平均天数,但只考虑我有3天或更长时间的那些行。 (消除所有缺失的值以及列“天”中的< 3的所有内容)

我想的是:

df.groupby("Sex")["Days"].mean().where().... 

其中列[0]> = 3 但是“where”条件存在问题

最好的命令是什么?谢谢。

1 个答案:

答案 0 :(得分:1)

怎么样?

df.query("Days > 2").groupby("Sex")["Days"].mean()

演示:

In [208]: df
Out[208]:
   Days  Age Sex
0   5.0   39   F
1   NaN   54   M
2   4.0   26   M
3   1.0   42   M
4   4.0   29   M

In [209]: df.query("Days > 2").groupby("Sex")["Days"].mean()
Out[209]:
Sex
F    5.0
M    4.0
Name: Days, dtype: float64