📅  最后修改于: 2023-12-03 14:51:23.410000             🧑  作者: Mango
有时候我们需要在 DataFrame 中查找与另一列中的唯一值相对应的列中的值的总和。在 Python 的 pandas 库中,我们可以使用 groupby 和 sum 函数来实现这个目的。
假设我们有一个包含销售数据的 DataFrame,包含以下列:日期、地区、产品、销售数量、销售额。
import pandas as pd
df = pd.DataFrame({
'date': ['2021-01-01', '2021-01-01', '2021-01-02', '2021-01-02', '2021-01-03', '2021-01-03'],
'region': ['east', 'west', 'east', 'west', 'east', 'west'],
'product': ['A', 'A', 'B', 'B', 'A', 'A'],
'quantity': [10, 20, 30, 40, 50, 60],
'revenue': [100, 200, 300, 400, 500, 600],
})
print(df)
输出:
date region product quantity revenue
0 2021-01-01 east A 10 100
1 2021-01-01 west A 20 200
2 2021-01-02 east B 30 300
3 2021-01-02 west B 40 400
4 2021-01-03 east A 50 500
5 2021-01-03 west A 60 600
假设我们需要按地区汇总销售数量,我们可以使用 groupby 函数来实现:
quantity_by_region = df.groupby('region')['quantity'].sum()
print(quantity_by_region)
输出:
region
east 90
west 120
Name: quantity, dtype: int64
这个结果告诉我们,东部地区的销售数量总和为 90,西部地区的销售数量总和为 120。
假设我们需要按地区和产品汇总销售数量,我们可以使用 groupby 函数并指定多个列来实现:
quantity_by_region_product = df.groupby(['region', 'product'])['quantity'].sum()
print(quantity_by_region_product)
输出:
region product
east A 60
B 30
west A 80
B 40
Name: quantity, dtype: int64
这个结果告诉我们,东部地区的 A 产品销售数量总和为 60,B 产品销售数量总和为 30;西部地区的 A 产品销售数量总和为 80,B 产品销售数量总和为 40。
假设我们需要按地区和产品汇总销售额,我们可以使用 groupby 函数并指定多个列,然后使用 sum 函数计算销售额总和:
revenue_by_region_product = df.groupby(['region', 'product'])['revenue'].sum()
print(revenue_by_region_product)
输出:
region product
east A 600
B 300
west A 800
B 400
Name: revenue, dtype: int64
这个结果告诉我们,东部地区的 A 产品销售额总和为 600,B 产品销售额总和为 300;西部地区的 A 产品销售额总和为 800,B 产品销售额总和为 400。
在 Python 的 pandas 库中,我们可以使用 groupby 和 sum 函数来实现在与另一列中的唯一值相对应的列中查找值的总和。我们只需要调用 groupby 函数并指定要分组的列,然后调用 sum 函数来计算总和即可。