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

使用Pandas导入数值数据时出现数值不符问题

问题分析与解决方案

先纠正代码语法错误

你当前的loc筛选语法存在明显错误,这可能影响结果的准确性,正确写法如下:

df = pd.read_excel('C:/Users/tkmwangi/Downloads/Non-Life Data.xlsx')
# 正确的条件筛选逻辑
data = df.loc[df['Contract_NO'] == 91]
print(data)

数值不符的核心排查方向

1. 检查Excel源文件的实际存储值

打开Excel文件,定位到Contract_NO=91、UnderWriting_Year=2007的行,点击对应的PREMIUMS单元格,查看编辑栏中的真实数值:

  • 很多时候单元格设置了显示格式(比如自定义小数位数、千分位显示),但实际存储的是另一个值;
  • 确认该单元格是否为公式计算结果,如果是,检查公式引用的单元格是否正确,逻辑是否存在错误。

2. 强制指定数据类型读取

读取时强制将PREMIUMS列设为浮点型,避免pandas自动类型识别出错:

df = pd.read_excel('C:/Users/tkmwangi/Downloads/Non-Life Data.xlsx', dtype={'PREMIUMS': float})
data = df.loc[df['Contract_NO'] == 91]
print(data['PREMIUMS'])

3. 验证CSV导出与读取的准确性

  • 导出CSV时,选择Excel的「文件-另存为」,格式选「逗号分隔值(.csv)」,不要修改任何数值格式;
  • 用记事本或VS Code打开导出的CSV文件,直接查看对应行的PREMIUMS值是否正确;
  • 再用pandas读取CSV验证:
df = pd.read_csv('导出的CSV文件路径.csv', dtype={'PREMIUMS': float})
data = df.loc[df['Contract_NO'] == 91]
print(data)

4. 排查数据重复或行混淆

确认Contract_NO=91的行是否存在重复的UnderWriting_Year=2007记录,打印完整结果排查:

print(data[['Contract_NO', 'UnderWriting_Year', 'PREMIUMS']])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 04:55:01