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

Pandas不同DataFrame间进行数值运算得到NaN如何解决?

问题原因

Pandas对Series做数值运算时默认按索引对齐后再计算。你分别从两个DataFrame筛选出的费城76人队数据,在teamdf中的行索引为4,在advdf中的行索引为13,两个Series没有共同索引,因此相乘后对应位置全部返回NaN。

解决方法

方法1:提取单个数值后运算

如果确定筛选结果只有1行数据,可直接提取标量值再计算:

t1_fgp = team1df['FG%'].iloc[0]
t1a_ortg = team1adf['ORtg'].iloc[0]
result = t1_fgp * t1a_ortg

方法2:重置索引后运算

筛选数据时统一重置索引,消除原始索引的影响:

team1df = teamdf[teamdf.Team == 'Philadelphia 76ers*'].reset_index(drop=True)
team1adf = advdf[advdf.Team == 'Philadelphia 76ers*'].reset_index(drop=True)
result = team1df['FG%'] * team1adf['ORtg']

方法3:先合并DataFrame再运算(更推荐,适合多球队批量计算)

按球队名称合并两个DataFrame,后续所有计算都不会出现索引对齐问题:

merged_df = pd.merge(teamdf, advdf, on='Team')
# 提取76人数据计算
philadelphia_data = merged_df[merged_df.Team == 'Philadelphia 76ers*']
result = philadelphia_data['FG%'] * philadelphia_data['ORtg']

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:54:04