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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。