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

为何两单列DataFrame逐元素相除结果为NaN且生成两列?

问题原因

Pandas 中 DataFrame 执行算术运算时,默认会同时按列名和索引对齐匹配元素。你的 df0 只有列a,df1 只有列b,两者没有重叠的列名,运算时每个位置都找不到对应的匹配项,因此结果全为 NaN。

解决办法

以下几种方式可以实现逐元素相除:

  • 提取列转为 Series 运算:直接取两个 DataFrame 的唯一列做除法,Series 会按索引对齐(此处索引均为 0-4,完全匹配),得到逐元素相除的结果:
    df0['a'] / df1['b']
    
  • 统一列名后运算:将其中一个 DataFrame 的列名修改为与另一个一致,让 Pandas 能匹配到对应列计算:
    df1_renamed = df1.rename(columns={'b': 'a'})
    df0 / df1_renamed
    
  • 借助 numpy 数组直接运算:跳过 Pandas 的对齐机制,用底层数组按位置计算,可按需转回 DataFrame:
    result = pd.DataFrame(df0.to_numpy() / df1.to_numpy(), columns=['result'])
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 09:42:09