如何用一行Pandas代码创建带聚合条件的计算列?
解决方案
你可以用一行Pandas代码完成需求,核心思路是先筛选目标行并分组计算最大值,再将结果映射回原DataFrame:
df['max_time'] = df['rsvn'].map(df[df['status'] == 'ss'].groupby('rsvn')['status'].max())
如果你的"最大值"是针对某一数值列(比如名为time的列),只需把代码里的'status'替换为对应列名即可:
df['max_time'] = df['rsvn'].map(df[df['status'] == 'ss'].groupby('rsvn')['time'].max())
代码说明
df[df['status'] == 'ss']:筛选出所有status为'ss'的行.groupby('rsvn')['status'].max():按rsvn分组,计算每组的目标最大值df['rsvn'].map(...):将原DataFrame每行的rsvn值匹配到对应的分组最大值,生成新的max_time列
内容的提问来源于stack exchange,提问作者Khoa Vo
相关产品推荐
相关产品推荐

