如何快速計算DataFrame的總和

一、使用pandas的sum()函數

對於一個DataFrame,可以使用sum()方法計算每一列的總和,如下所示:

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
sum_df = df.sum()

print(sum_df)

輸出結果:

A    6
B    15
dtype: int64

sum()方法默認將行向下的每個元素相加,然後返回每列的總和。也可以指定axis=1參數,將每行的元素相加。

sum_by_row = df.sum(axis=1)

print(sum_by_row)

輸出結果:

0     5
1     7
2     9
dtype: int64

二、使用numpy的sum()函數

使用numpy的sum()函數也可以計算DataFrame的總和。與pandas的sum()方法相比,numpy的sum()函數速度更快,尤其是在數據量較大時。

import pandas as pd
import numpy as np

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
sum_np = np.sum(df)

print(sum_np)

輸出結果:

21

sum()函數默認按照行向下計算所有元素的總和,並返回一個標量值。也可以通過指定axis參數,按列向右或者按行向下計算總和。

sum_by_column = np.sum(df, axis=0)

print(sum_by_column)

輸出結果:

A    6
B    15
dtype: int64

三、使用DataFrame的eval()方法

對於大量數據的DataFrame,使用上述方法可能會消耗大量的時間。Pandas提供了一個方便的eval()方法,用於快速對DataFrame進行計算。

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})
result = df.eval('A+B')

print(result)

輸出結果:

0     5
1     7
2     9
dtype: int64

eval()函數解析給定的字元串表達式,並返回計算結果。在這個例子中,A和B是df的列名,使用+號將它們相加。

四、使用DataFrame的apply()方法

對於一些特定的計算,對每一行進行循環計算可能是最好的方式。

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

def row_sum(row):
    return row['A'] + row['B']

result = df.apply(row_sum, axis=1)

print(result)

輸出結果:

0     5
1     7
2     9
dtype: int64

apply()方法通過給定的函數處理DataFrame中的每一行或列,並返回計算結果。在這個例子中,我們定義了一個row_sum()函數,用於計算每一行中A和B列的總和。

五、使用Python原生的for循環

對於一些簡單的計算,也可以使用Python原生的for循環進行計算。

import pandas as pd

df = pd.DataFrame({'A': [1, 2, 3], 'B': [4, 5, 6]})

sum_all = 0
for i in range(len(df)):
    sum_all += df.iloc[i]['A'] + df.iloc[i]['B']

print(sum_all)

輸出結果:

21

通過使用Python原生的for循環,可以對DataFrame中的每一行進行循環,並計算總和。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/240228.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 12:20
下一篇 2024-12-12 12:20

相關推薦

  • Ojlat:一款快速開發Web應用程序的框架

    Ojlat是一款用於快速開發Web應用程序的框架。它的主要特點是高效、易用、可擴展且功能齊全。通過Ojlat,開發人員可以輕鬆地構建出高質量的Web應用程序。本文將從多個方面對Oj…

    編程 2025-04-29
  • Python計算1到n的奇數總和

    本文將介紹如何使用Python計算1到n的奇數總和,該演算法對於初學Python編程的人員非常有幫助。 一、計算奇數總和的方法 計算1到n的奇數總和可以使用循環語句和條件語句實現。具…

    編程 2025-04-29
  • 二階快速求逆矩陣

    快速求逆矩陣是數學中的一個重要問題,特別是對於線性代數中的矩陣求逆運算,如果使用普通的求逆矩陣方法,時間複雜度為O(n^3),計算量非常大。因此,在實際應用中需要使用更高效的演算法。…

    編程 2025-04-28
  • 快速排序圖解

    快速排序是一種基於分治思想的排序演算法,效率非常高。它通過在序列中尋找一個主元,將小於主元的元素放在左邊,大於主元的元素放在右邊,然後在左右子序列中分別遞歸地應用快速排序。下面將從算…

    編程 2025-04-28
  • Python性能分析: 如何快速提升Python應用程序性能

    Python是一個簡潔高效的編程語言。在大多數情況下,Python的簡潔和生產力為開發人員帶來了很大便利。然而,針對應用程序的性能問題一直是Python開發人員需要面對的一個難題。…

    編程 2025-04-27
  • Python DataFrame轉List用法介紹

    Python中常用的數據結構之一為DataFrame,但有時需要針對特定需求將DataFrame轉為List。本文從多個方面針對Python DataFrame轉List詳細介紹。…

    編程 2025-04-27
  • mfastboot:快速刷機利器

    本文將詳細闡述全能工程師如何使用mfastboot進行快速刷機,並且深入解析mfastboot的功能與優勢。 一、下載並配置mfastboot 1、首先,在Ubuntu中打開終端並…

    編程 2025-04-27
  • 微博、爬蟲、知乎:如何快速抓取社交媒體數據?

    社交媒體平台是大眾傳播的重要渠道,也是學術研究中廣泛使用的數據來源。但是,手工抓取數據的效率極低,因此需要使用爬蟲技術將數據自動抓取下來。本文將以微博、爬蟲、知乎為中心,介紹如何使…

    編程 2025-04-27
  • ITQFS——基於人工智慧的快速文件搜索引擎

    ITQFS是一種基於人工智慧技術的快速文件搜索引擎,它可以自動整理、分類、檢索和分享您的文件,讓您在文件管理上提高效率。 一、ITQFS的特性 1、ITQFS可以為用戶提供高效、快…

    編程 2025-04-27
  • 如何通過快捷鍵快速新建幻燈片

    快捷鍵可以讓我們更加高效地處理任務,新建幻燈片也不例外。下面將從多個方面介紹如何通過快捷鍵快速新建幻燈片。 一、使用PowerPoint快捷鍵 如果你是使用PowerPoint來制…

    編程 2025-04-27

發表回復

登錄後才能評論