我真的不明白为什么在乘以同一数据帧的两列后我获得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?
答案 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.dtypes
和df.dtypes
可能会为您提供有关哪些类型可能不匹配的信息。