Python - 使用 Pandas 中的 GroupBy 对负值和正值求和
pythonserver side programmingprogramming更新于 2025/10/20 22:36:17
让我们看看如何求负值和正值的总和。首先,创建一个包含正值和负值的 DataFrame −
dataFrame = pd.DataFrame({'Place': ['Chicago', 'Denver', 'Atlanta', 'Chicago', 'Dallas', 'Denver','Dallas', 'Atlanta'], 'Temperature': [-2, 30, -5, 10, 30, -5, 20, -10]})
接下来,使用 groupby 根据 Place 列 − 进行分组
groupRes = dataFrame.groupby(dataFrame['Place'])
使用 lambda 函数返回正值和负值。我们还分别添加了正值和负值 −
# lambda 函数 def plus(val): return val[val > 0].sum() def minus(val): return val[val < 0].sum()
示例
以下是完整代码 −
import pandas as pd
# 创建一个温度为摄氏温度的 DataFrame
dataFrame = pd.DataFrame({'Place': ['Chicago', 'Denver', 'Atlanta', 'Chicago', 'Dallas', 'Denver','Dallas', 'Atlanta'], 'Temperature': [-2, 30, -5, 10, 30, -5, 20, -10]})
print(dataFrame)
# 使用 groupby 根据地点分组
groupRes = dataFrame.groupby(dataFrame['Place'])
# lambda 函数
def plus(val):
return val[val > 0].sum()
def minus(val):
return val[val < 0].sum()
print(groupRes['Temperature'].agg([('negTemp', minus), ('posTemp', plus)]))
输出
这将产生以下代码 −
Place Temperature 0 Chicago -2 1 Denver 30 2 Atlanta -5 3 Chicago 10 4 Dallas 30 5 Denver -5 6 Dallas 20 7 Atlanta -10 negTemp posTemp Place Atlanta -15 0 Chicago -2 10 Dallas 0 50 Denver -5 30
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

