python - Pandas 数据框。消除列中匹配某些条件的行

标签 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”条件有问题

执行此操作的最佳命令是什么?谢谢。

最佳答案

什么?

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

关于python - Pandas 数据框。消除列中匹配某些条件的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48252757/

相关文章:

python - Pandas - 使用数据框值作为字符串填充列表

Python:重新组织数据框,其中一列中出现重复的值。

python - 如何在 Redis 中设置/获取 pandas.DataFrame?

python - 过滤掉超过一定数量 NaN 的行

r - 创建一个数据框,每列中包含随机数

python - 对多索引 Pandas 数据框中的行求和

python - 这是生成 rsa key 的正确方法吗?

python - 如何将字符串中的元组转换为元组对象?

python - 删除 numpy 重新数组中的一行

python - Django - 当文件等于 maxBytes 时旋转文件处理程序卡住