Data Analysis with Pandas

Pandas 高效列求和技巧

Spread the love

Pandas是一个强大的Python库,用于数据处理和分析,计算列值的总和是一项常用的任务。本文探讨了在Pandas DataFrame中高效汇总数据的各种方法,涵盖基本求和、分组累积和以及条件求和。

目录:

  1. Pandas DataFrame列的基本求和
  2. 使用groupby()进行累积求和
  3. 基于其他列值的条件求和

1. Pandas DataFrame列的基本求和

对Pandas DataFrame列求和最简单的方法是使用.sum()方法。这直接计算指定列中所有值的总和。非数值值将被忽略。


import pandas as pd

data = {'A': [1, 2, 3, 4, 5],
        'B': [6, 7, 8, 9, 10],
        'C': [11, 12, 13, 14, 15]}
df = pd.DataFrame(data)

# 列'A'的总和
sum_A = df['A'].sum()
print(f"列A的总和: {sum_A}")  # 输出:列A的总和: 15

# 列'B'的总和
sum_B = df['B'].sum()
print(f"列B的总和: {sum_B}")  # 输出:列B的总和: 40

# 所有数值列的总和
sum_all = df.sum()
print(f"所有数值列的总和:n{sum_all}")

2. 使用groupby()进行累积求和

在组内计算累积和需要groupby()方法结合.cumsum()。这允许对不同类别进行高效的聚合。


import pandas as pd

data = {'Group': ['X', 'X', 'Y', 'Y', 'Y'],
        'Value': [10, 20, 30, 40, 50]}
df = pd.DataFrame(data)

# 按'Group'分组并计算'Value'的累积和
cumulative_sum = df.groupby('Group')['Value'].cumsum()
df['Cumulative Sum'] = cumulative_sum
print(df)

这将输出一个DataFrame,其中包含一个“累积和”列,显示每个组的累积和。

3. 基于其他列值的条件求和

条件求和允许您根据应用于其他列的条件来求和值。布尔索引和.sum()方法可以实现这一点。


import pandas as pd

data = {'Category': ['A', 'B', 'A', 'B', 'A'],
        'Sales': [100, 150, 200, 250, 300]}
df = pd.DataFrame(data)

# 'Category'为'A'时'Sales'的总和
sum_A = df[df['Category'] == 'A']['Sales'].sum()
print(f"类别A的销售总额: {sum_A}")  # 输出:类别A的销售总额: 600

# 'Sales'大于200时的'Sales'总和
sum_greater_200 = df[df['Sales'] > 200]['Sales'].sum()
print(f"大于200的销售总额: {sum_greater_200}") # 输出:大于200的销售总额: 550

这演示了在求和之前过滤DataFrame以进行强大的条件聚合。请记住将这些技术调整到您的特定数据和需求。Pandas提供了许多用于高效数据分析的工具。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注