python - 在 Pandas 中使用 Where 条件分组

标签 python pandas where-clause pandas-groupby

有一个像这样的数据框:enter image description here

我根据减去 'pause_end' 和 'pause_start' 列值创建列 'dif_pause' 并使用 groupby () 函数进行平均值聚合,就像这样:

pauses['dif_pause'] = pauses['pause_end'] - pauses['pause_start']
pauses['dif_pause'].astype(dt.timedelta).map(lambda x: np.nan if pd.isnull(x) else x.days)

pauses_df=pauses.groupby(["subscription_id"])["dif_pause"].mean().reset_index(name="avg_pause")

我想在 groupby 部分中包含检查是否 pause_end>pause_start(SQL 中 WHERE 子句的一些等价物)。如何做到这一点?

谢谢。

最佳答案

看来你需要queryboolean indexing首先用于过滤:

pauses.query("pause_end > pause_start")
       .groupby(["subscription_id"])["dif_pause"].mean().reset_index(name="avg_pause")

pauses[pauses["pause_end"] > pauses["pause_start"]]
      .groupby(["subscription_id"])["dif_pause"].mean().reset_index(name="avg_pause")

关于python - 在 Pandas 中使用 Where 条件分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44537249/

相关文章:

python - 拆分和连接后,我没有取回所有字符串

php - WordPress 插件开发。 WHERE 子句的问题

postgresql - 高效过滤类型忽略

python - 在Ubuntu服务器上使用tmux运行tensorflow错误

python - 模块未找到错误: No module named 'dns'

python - & :'NoneType' 和 'Node' 不支持的操作数类型

python - 像访问常规列一样访问 Pandas 索引

python - 将某些行提升为有序 pandas 数据帧中的索引

json - Pandas 逆json_normalize

Oracle where 子句中的 SQL 查询