我有一个问题。如您所见,以下示例:
data = pd.DataFrame({'a':[127093342616], 'b':[22853943721]})
data['a*b']= data['a']*data['b']
data
- 当我将 2 个数字相乘:127093342616 vs 22853943721,结果 = 2904584099459834914136
- 但是,当我使用 Pandas 的 DataFrame 并将 2 列相乘时,结果 = 8445279887435310424
谁能告诉我发生这种情况的原因和解决方法?
最佳答案
尝试使用 float 据类型,您遇到整数溢出问题:
data = pd.DataFrame({'a':[127093342616], 'b':[22853943721]}, dtype=np.float)
data['a*b']= data['a']*data['b']
data
输出:
a b a*b
0 1.270933e+11 2.285394e+10 2.904584e+21
因为pandas下面使用numpy,我们看一下numpy datatypes .
numpy.int64 - 整数(-9223372036854775808 到 9223372036854775807)
关于python - 不能在 Pandas 中乘以 2 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66770432/