python - 不能在 Pandas 中乘以 2 列

标签 python pandas

我有一个问题。如您所见,以下示例:

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/

相关文章:

python - 拆分并使用 Excel 列中的值

python - 如何使用MySQL和Flask创建表和插入数据

python - 使用 send 将值传递给 yield

python - 为什么我需要 lambda 来将函数应用于 Pandas Dataframe?

python - 在 pandas.DataFrame 中添加一个 np.array 作为列

Python:lambda 表达式的数据帧错误

python - 根据列值重复数据帧的各个部分

python - numpy.sum 的内部结构

python - 在列表中创建重复项

python - SWIG 结构指针作为输出参数