Pandas DataFrame.sum(~)
方法計算源 DataFrame 的每行或每列的總和。
參數
1.axis
| int
或 string
| optional
是否按行或按列計算總和:
軸 |
說明 |
---|---|
|
計算每列的總和。 |
|
計算每行的總和。 |
默認情況下,axis=0
。
2. skipna
| boolean
| optional
是否忽略缺失值(NaN
)。默認情況下,skipna=True
。
3. level
| string
或 int
| optional
要考慮進行求和的級別的名稱或整數索引。僅當您的 DataFrame 是多索引時,這才相關。
4. numeric_only
| None
或 boolean
| optional
允許的值如下:
值 |
說明 |
---|---|
|
僅考慮數字行/列(例如 |
|
嘗試使用所有類型(例如字符串和日期)進行計算,並在求和無效時拋出錯誤。 |
|
嘗試使用所有類型進行計算,並忽略所有不允許求和的行/列不會引發錯誤. |
為了使求和有效,+
運算符必須在類型之間明確定義。
默認情況下,numeric_only=None
。
5. min_count
| int
| optional
執行求和必須出現的最小數值數。如果少於min_count
值(不包括NaN
),則返回NaN
。默認情況下,沒有設置最小值。
返回值
如果指定了level
參數,則將返回DataFrame
。否則,將返回Series
。
例子
考慮以下 DataFrame :
df = pd.DataFrame({"A":[2,3], "B":[4,5]})
df
A B
0 2 4
1 3 5
逐列求和
要計算每列的總和:
df.sum() # axis=0
A 5
B 9
dtype: int64
這裏,返回類型是Series
。
逐行求和
要計算每行的總和,請設置 axis=1
:
df.sum(axis=1)
0 6
1 8
dtype: int64
指定skipna
考慮以下帶有缺失值的DataFrame:
df = pd.DataFrame({"A":[2,pd.np.nan], "B":[4,5]})
df
A B
0 2.0 4
1 NaN 5
默認情況下, skipna=True
,這意味著在計算中忽略 NaN
:
df.sum()
A 2.0
B 9.0
dtype: float64
設置為 skipna=False
將考慮 NaN
:
df.sum(skipna=False)
A NaN
B 9.0
dtype: float64
我們對 A
列的總和得到 NaN
的原因是,任何涉及 NaN
的算術計算都會產生 NaN
。
指定numeric_only
考慮以下 DataFrame :
df = pd.DataFrame({"A":[4,5], "B":[2,True], "C":["6",False]})
df
A B C
0 4 2 "6"
1 5 True False
此處, B
和 C
列都包含混合類型,但主要區別在於,求和是為 B
定義的,而不是為 C
定義的。回想一下, True
布爾值的內部表示是 1
,因此操作 2+True
實際上計算為 3
:
2 + True
3
另一方麵,"6"+False
拋出錯誤:
6 + "False"
TypeError: unsupported operand type(s) for +: 'int' and 'str'
None
默認情況下, numeric_only=None
,這意味著混合類型的行/列也會被考慮:
df.sum(numeric_only=None)
A 9
B 3
dtype: int64
在這裏,注意如何在列上執行求和B
,但不是在C
。通過傳入None
,導致無效求和的行/列將被忽略沒有拋出錯誤.
False
通過設置 numeric_only=False
,將再次考慮混合類型的行/列,但無法求和時會拋出錯誤:
df.sum(numeric_only=False)
TypeError: can only concatenate str (not "bool") to str
在這裏,我們最終得到一個錯誤,因為 C
列包含混合類型,其中未定義 +
操作。
True
通過設置 numeric_only=True
,僅考慮數字行/列:
df.sum(numeric_only=True)
A 9
dtype: int64
請注意B
和C
列如何被忽略,因為它們包含混合類型。
空的情況DataFrame
計算空的 DataFrame 或 Series 的總和將得到 0
:
df = pd.DataFrame({"A":[]})
df.sum()
A 0.0
dtype: float64
相關用法
- Python PySpark DataFrame summary方法用法及代碼示例
- Python Pandas DataFrame sub方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
- Python PySpark DataFrame sampleBy方法用法及代碼示例
- Python Pandas DataFrame set_axis方法用法及代碼示例
- Python Pandas DataFrame select_dtypes方法用法及代碼示例
- Python PySpark DataFrame selectExpr方法用法及代碼示例
- Python PySpark DataFrame show方法用法及代碼示例
- Python PySpark DataFrame select方法用法及代碼示例
- Python Pandas DataFrame stack方法用法及代碼示例
- Python Pandas DataFrame shift方法用法及代碼示例
- Python Pandas DataFrame sort_index方法用法及代碼示例
- Python Pandas DataFrame size屬性用法及代碼示例
- Python Pandas DataFrame set_index方法用法及代碼示例
- Python Pandas DataFrame swapaxes方法用法及代碼示例
- Python PySpark DataFrame sort方法用法及代碼示例
- Python PySpark DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame sem方法用法及代碼示例
- Python Pandas DataFrame std方法用法及代碼示例
- Python Pandas DataFrame shape屬性用法及代碼示例
- Python Pandas DataFrame sort_values方法用法及代碼示例
- Python Pandas DataFrame slice_shift方法用法及代碼示例
- Python Pandas DataFrame squeeze方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | sum method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。