Python pd.Series.prod()函数

Python pd.Series.prod()函数,python,pandas,series,Python,Pandas,Series,这可能是最基本的,但我还是搞不懂 我正在阅读pd.系列的文档并做一些简单的练习 我的代码如下: import pandas as pd import numpy as np pd.Series([2, 4, 6]).prod() Out[7]: 48 a = pd.Series(np.arange(1, 100, 3)) a Out[9]: 0 1 1 4 2 7 3 10 4 13 5 16 6 19 7 22

这可能是最基本的,但我还是搞不懂

我正在阅读pd.系列的文档并做一些简单的练习

我的代码如下:

import pandas as pd
import numpy as np    
pd.Series([2, 4, 6]).prod()
Out[7]: 48

a = pd.Series(np.arange(1, 100, 3))

a
Out[9]: 
0      1
1      4
2      7
3     10
4     13
5     16
6     19
7     22
8     25
9     28
10    31
11    34
12    37
13    40
14    43
15    46
16    49
17    52
18    55
19    58
20    61
21    64
22    67
23    70
24    73
25    76
26    79
27    82
28    85
29    88
30    91
31    94
32    97
dtype: int32

a.prod()
Out[10]: 0

a = pd.Series(np.arange(1, 100, 2))

a.prod()
Out[15]: -373459037

type(a)
Out[18]: pandas.core.series.Series
我的问题是,在我看来,为什么会有这种不稳定的行为?为什么a.prod()第一次计算为0,然后计算为负整数


非常感谢您的建议。

这是
int32
溢出:

In [340]: a = pd.Series(np.arange(1, 100, 3)).astype(np.int64)
#  NOTE:                 --------------->    ^^^^^^^^^^^^^^^^^

In [341]: a.prod()
Out[341]: 8624389262030143488

我们可以直接使用numpy的
np.prod
和指定的
dtype
来克服int溢出:

np.prod(a.values,dtype=np.int64)
Out[938]: 5196472710489536419

哦,天哪,我迟到了吗?他们几天前在我的班上教了同样的东西:)@Bharath,哦!真有趣!你在哪里教什么?如果你不想公开,我会完全理解的…@Bharath,我相信你有足够的知识来教人!;-)@Bharath如果您知道,
标量和软内存如何存储数字,您会发现这很有趣。:-)