如何在Pandas DataFrame中获取保留完整小数位的精确值?
解决DataFrame显示完整小数精度的问题
你遇到的是Pandas默认显示格式截断小数的问题——数据本身是精确存储的,只是输出时被自动格式化缩短了。以下是几种直接可行的解决方法:
方法1:修改全局显示精度
一次性设置Pandas的浮点数显示规则,让所有浮点数输出都保留完整精度:
import pandas as pd # 设置浮点数显示为15位小数,足够覆盖你的需求 pd.set_option('display.float_format', '{:.15f}'.format) # 再次执行你的排序代码,即可看到完整小数 df_A2C.loc[(df_A2C['TO_ID'] == 7)].sort_values('DURATION_H').head(1)
方法2:针对单个列临时调整
如果不想改动全局设置,仅对DURATION_H列单独设置显示格式:
# 先完成筛选和排序操作 result = df_A2C.loc[(df_A2C['TO_ID'] == 7)].sort_values('DURATION_H').head(1) # 格式化目标列的显示内容 result['DURATION_H'] = result['DURATION_H'].apply(lambda x: '{:.15f}'.format(x)) print(result)
方法3:直接提取精确值
如果只需要获取这个最小的精确数值,而非显示整行数据,可以直接提取:
min_row = df_A2C.loc[(df_A2C['TO_ID'] == 7)].sort_values('DURATION_H').head(1) # 提取DURATION_H列的第一个值(即最小的精确值) exact_min_value = min_row['DURATION_H'].iloc[0] print("精确的最小时长值:", exact_min_value)
内容的提问来源于stack exchange,提问作者user13373167
相关产品推荐
相关产品推荐

