使用pandas.read_csv导入数据时数值显示异常的问题求助
Pandas导入CSV后Price列显示为科学计数法的原因及解决办法
原因
Pandas将Price列识别为float64类型后,默认的浮点数显示规则会在数值符合特定条件时自动切换为科学计数法呈现。注意:数据本身的数值并未被修改,只是显示格式发生了变化。
解决办法
以下几种方式可以让Price列以常规小数格式显示:
1. 修改全局浮点数显示设置
通过设置Pandas的全局显示选项,让所有浮点数都采用常规格式输出,无需单独处理每一列:
import pandas as pd # 禁用科学计数法,保留4位小数(可根据需求调整小数位数) pd.set_option('display.float_format', lambda x: '%.4f' % x) # 之后再打印DataFrame即可看到常规格式 print(dfMyData)
2. 仅格式化特定列(不改变数据类型)
如果不想修改全局设置,可通过style.format仅调整Price列的显示格式,同时保留列的数值类型:
# 格式化Price列显示为4位小数,打印时生效 print(dfMyData.style.format({'Price': '%.4f'}))
3. 转换列格式为字符串(需谨慎)
若需要将列转为字符串格式存储(但会失去数值计算能力),可使用apply方法:
# 将Price列转为带4位小数的字符串 dfMyData['Price'] = dfMyData['Price'].apply(lambda x: '%.4f' % x) print(dfMyData)
另外,你的代码中存在一个小问题:定义了fname01但导入时使用了未定义的fname02,建议修正为一致的变量名。
内容的提问来源于stack exchange,提问作者Jonas Svare
相关产品推荐
相关产品推荐

