如何基于stayid分组为Pandas DataFrame新增最大最小温度列
实现方法
你可以通过pandas的groupby+transform组合实现需求,transform会返回和原DataFrame长度一致的分组计算结果,可直接赋值为新列。
假设你的温度字段名为temperature,执行以下代码即可:
# 新增相同stayid对应的最高温度列 df['max_temperature'] = df.groupby('stayid')['temperature'].transform('max') # 新增相同stayid对应的最低温度列 df['min_temperature'] = df.groupby('stayid')['temperature'].transform('min')
你提供的数据样例参考:
可选注意项
- 若你的温度字段存在空值,且要求分组内只要存在空值则计算结果也为空,可以添加
skipna=False参数:
df['max_temperature'] = df.groupby('stayid')['temperature'].transform('max', skipna=False) df['min_temperature'] = df.groupby('stayid')['temperature'].transform('min', skipna=False)
- 请将代码中的
temperature替换为你实际使用的温度列名即可正常运行。
内容的提问来源于stack exchange,提问作者DDM
相关产品推荐
相关产品推荐

