You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何使用Pandas .divide()方法会生成含NaN的除数列?

问题原因与解决方法

你的问题出在DataFrame间的除法会同时对齐索引和列名:

  • week1_range 的列是 Max TemperatureF、Min TemperatureF
  • week1_mean 的列是 Mean TemperatureF
    两者列名完全不重叠,所以Pandas找不到对应列进行运算,最终返回的结果会合并所有列,且每个位置都是NaN。而标量除法不需要列对齐,所以能正常运行。

解决方法

只需要把 week1_mean 转换成一维的Series,这样Pandas会按索引对齐并广播到 week1_range 的所有列,实现逐元素除法:

方法1:提取对应列作为Series

week1_range.divide(week1_mean['Mean TemperatureF'], axis='rows')

方法2:用squeeze()压缩DataFrame为Series

week1_range / week1_mean.squeeze()

执行后就能得到预期的逐元素除法结果:

Max TemperatureF  Min TemperatureF
Date                                          
2013-07-01         1.097222         0.916667
2013-07-02         1.135135         0.891892
2013-07-03         1.102564         0.910256
2013-07-04         1.116883         0.909091
2013-07-05         1.131579         0.907895
2013-07-06         1.141026         0.897436
2013-07-07         1.069444         0.972222

内容的提问来源于stack exchange,提问作者Srinivas

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 20:45:06