Python - 在 Pandas 中使用 GroupBy 求和负值和正值
让我们看看如何找到负值和正值的总和。首先,创建一个具有正值和负值的数据框 -
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 函数返回正值和负值。我们还分别添加了正值和负值 -
# 拉姆达函数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'])
# 拉姆达函数
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 Temperature0 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 - 在 Pandas 中使用 GroupBy 求和负值和正值 的全部内容, 来源链接: utcz.com/z/361059.html