一、使用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-hant/n/240228.html