将相同数据帧的两列相乘

时间:2017-11-28 09:51:14

标签: dataframe nan multiplying

我真的不明白为什么在乘以同一数据帧的两列后我获得NaN值:

我有2列,1个浮点数和1个int。

我写道:

df['total'] = df_prt.Quantity * df_prt.Price

结果如下:

600000    * 110.319199 = Nan
-600000   * 1.106900   = Nan
9000032.4 * 30000      = Nan
43797     * 19.603200  = 3.161641e+06

为什么我会获得Nan?

2 个答案:

答案 0 :(得分:0)

对不起,这是正确的结果:

600000    * 110.319199 = Nan
-600000   * 1.106900   = Nan
90000     * 32.430000      = Nan
43797     * 19.603200  = 3.161641e+06

答案 1 :(得分:0)

如果两个值均为数字,则此方法应该有效。

df_prt = pd.DataFrame([
    [600000, 110.319199],
    [-600000, 1.106900],
    [9000032.4, 30000],
    [43797, 19.603200],
], columns=['Quantity', 'Price'])

df_prt['total'] = df_prt.Quantity * df_prt.Price

这会导致预期的行为。 所以我假设你的一些数据类型错误(例如 string 而不是float)。

df_prt.dtypesdf.dtypes可能会为您提供有关哪些类型可能不匹配的信息。