Pandas DataFrame.product(~)
方法計算 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
。默認情況下,min_count=0
。
返回值
如果指定了level
參數,則將返回DataFrame
。否則,將返回Series
。
例子
考慮以下 DataFrame :
df = pd.DataFrame({"A":[2,3], "B":[4,5]})
df
A B
0 2 4
1 3 5
列式產品
計算每列的乘積:
df.product() # or axis=0
A 6
B 20
dtype: int64
行乘積
要計算每行的乘積,請設置 axis=1
:
df.product(axis=1)
0 8
1 15
dtype: int64
指定skipna
考慮以下帶有缺失值的DataFrame:
df = pd.DataFrame({"A":[3,pd.np.nan,5]})
df
A
0 3.0
1 NaN
2 5.0
默認情況下, skipna=True
,這意味著忽略缺失值:
df.product() # skipna=True
A 15.0
dtype: float64
考慮缺失值:
df.product(skipna=False)
A NaN
dtype: float64
請注意,如果行/列包含一個或多個缺失值,則該行/列的乘積將為 NaN
。
指定numeric_only
考慮以下 DataFrame :
df = pd.DataFrame({"A":[4,5], "B":[2,True], "C":["6","7"]})
df
A B C
0 4 2 "6"
1 5 True "7"
此處, B
和 C
列都是非數字的,但主要區別在於,乘積是為 B
定義的,而不是為 C
定義的。
回想一下, True
布爾值的內部表示是 1
,因此操作 2*True
實際上計算為 2
:
2 * True
2
另一方麵,"6"*"7"
拋出錯誤:
"6" * "7"
TypeError: can't multiply sequence by non-int of type 'str'
None
默認情況下, numeric_only=None
,這意味著混合類型的行/列也會被考慮:
df.product() # numeric_only=None
A 20
B 2
dtype: object
在這裏,請注意列 C
的乘積是不可計算的,因為 "6"*"7"
會導致錯誤。通過傳入 None
,導致這些無效產品的行/列將被簡單地忽略,而不會引發錯誤。
False
通過設置 numeric_only=False
,將再次考慮混合類型的行/列,但當無法計算乘積時會拋出錯誤:
df.product(numeric_only=False)
TypeError: can't multiply sequence by non-int of type 'str'
在這裏,我們最終出現錯誤,因為正如所解釋的,未定義列 C
的乘積 "6"*"7"
。
True
通過設置 numeric_only=True
,僅考慮數字行/列:
df.product(numeric_only=True)
A 20
dtype: int64
請注意B
和C
列如何被忽略,因為它們包含混合類型。
相關用法
- Python PySpark DataFrame printSchema方法用法及代碼示例
- Python Pandas DataFrame pop方法用法及代碼示例
- Python Pandas DataFrame pow方法用法及代碼示例
- Python Pandas DataFrame pipe方法用法及代碼示例
- Python Pandas DataFrame pct_change方法用法及代碼示例
- Python Pandas DataFrame empty屬性用法及代碼示例
- Python Pandas DataFrame nsmallest方法用法及代碼示例
- Python Pandas DataFrame sample方法用法及代碼示例
- Python Pandas DataFrame items方法用法及代碼示例
- Python Pandas DataFrame max方法用法及代碼示例
- Python Pandas DataFrame swaplevel方法用法及代碼示例
- Python Pandas DataFrame agg方法用法及代碼示例
- Python Pandas DataFrame copy方法用法及代碼示例
- Python Pandas DataFrame insert方法用法及代碼示例
- Python Pandas DataFrame lt方法用法及代碼示例
- Python Pandas DataFrame all方法用法及代碼示例
- Python Pandas DataFrame unstack方法用法及代碼示例
- Python Pandas DataFrame mean方法用法及代碼示例
- Python PySpark DataFrame filter方法用法及代碼示例
- Python Pandas DataFrame tz_convert方法用法及代碼示例
- Python Pandas DataFrame isin方法用法及代碼示例
- Python PySpark DataFrame collect方法用法及代碼示例
- Python PySpark DataFrame intersect方法用法及代碼示例
- Python PySpark DataFrame dtypes屬性用法及代碼示例
- Python Pandas DataFrame rank方法用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 Pandas DataFrame | product method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。