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 進行分組 -
groupRes = dataFrame.groupby(dataFrame['Place'])
使用 lambda 函式返回正值和負值。我們還單獨添加了正值和負值 -
# lambda function def plus(val): return val[val > 0].sum() def minus(val): return val[val < 0].sum()
示例
以下是完整程式碼 -
import pandas as pd
# create a DataFrame with temperature in celsius
dataFrame = pd.DataFrame({'Place': ['Chicago', 'Denver', 'Atlanta', 'Chicago', 'Dallas', 'Denver','Dallas', 'Atlanta'], 'Temperature': [-2, 30, -5, 10, 30, -5, 20, -10]})
print(dataFrame)
# using groupby to group on the basis of place
groupRes = dataFrame.groupby(dataFrame['Place'])
# lambda function
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
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP