Python Can';大熊猫中的t多个2列

Python Can';大熊猫中的t多个2列,python,pandas,Python,Pandas,我有个问题。正如您所看到的示例: data = pd.DataFrame({'a':[127093342616], 'b':[22853943721]}) data['a*b']= data['a']*data['b'] data 当我将2个数乘以:127093342616vs22853943721,结果=2904584099459834914136 但当我使用熊猫的数据帧时,我使用了两个列,结果=84452798874735310424 谁能告诉我原因是什么?和解决方案 非常感谢 尝试使

我有个问题。正如您所看到的示例:

data = pd.DataFrame({'a':[127093342616], 'b':[22853943721]})
data['a*b']= data['a']*data['b']
data
  • 当我将2个数乘以:127093342616vs22853943721,结果=2904584099459834914136
  • 但当我使用熊猫的数据帧时,我使用了两个列,结果=84452798874735310424
  • 谁能告诉我原因是什么?和解决方案

非常感谢

尝试使用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
因为熊猫在下面使用numpy,让我们看看

numpy.int64-整数(-9223372036854775808到9223372036854775807)


奇怪的行为。我想这可能与“长标量”有关,很高兴我能帮忙。你也可以随意投票给我答案。
data['a*b'] = [a * b for a, b in zip(data.a, data.b)]

data

              a            b                     a*b
0  127093342616  22853943721  2904584099459834914136