使用pandas的read_table()导入文件时小数位被截断的问题
问题原因与解决方法
原因
这只是pandas的默认显示优化,实际数据并没有被截断。pandas为了让表格更简洁易读,默认会将浮点数显示为6位小数,但DataFrame中存储的依然是文件里的完整数值。你可以通过直接打印单个值验证:
print(df_assets.loc[0, 'Variance'])
执行后会输出完整的0.001435955236,说明原始数据并未丢失。
解决方法
要让pandas显示完整小数位,只需修改显示设置即可:
方法1:全局设置浮点数显示精度
在读取数据前后添加以下代码,指定要显示的小数位数(这里以匹配你文件中10位小数为例):
import pandas as pd # 设置浮点数显示格式,保留10位小数 pd.set_option('display.float_format', '{:.10f}'.format) df_assets = pd.read_table('assets.txt') df_assets.head(10)
方法2:单独格式化特定列
如果只想让Variance列显示完整小数位,不影响其他列,可单独处理该列:
df_assets['Variance'] = df_assets['Variance'].apply(lambda x: '{:.10f}'.format(x))
注意:此方法会将该列转为字符串类型,若后续需数值计算,优先选择方法1。
内容的提问来源于stack exchange,提问作者jarsonX
相关产品推荐
相关产品推荐

