Pandas DataFrame列科学计数法转十进制及无舍入转整数求助
Pandas科学计数法转十进制小数及无舍入转整数实现方案
1. 科学计数法转十进制小数
Pandas默认对极小、极大数值采用科学计数法显示,仅需调整全局显示参数即可输出你需要的普通小数格式,代码如下:
import pandas as pd # 读取原数据 df1 = pd.read_csv('/content/drive/MyDrive/노후교량/DZ_Middle_G/20km_hr_lane1_acc_middle_girder.csv') # 调整浮点数显示格式,设置足够精度覆盖数据小数位,自动去除末尾无意义的0 pd.set_option('display.float_format', lambda val: '{:.10f}'.format(val).rstrip('0').rstrip('.') if '.' in '{:.10f}'.format(val) else str(val)) # 输出结果即为你要的十进制小数格式 print(df1.head())
如果需要实际修改列存储的数值格式,而非仅调整显示效果,可对目标列单独处理:
df1['DZ_middle_G_L1_20km'] = df1['DZ_middle_G_L1_20km'].apply(lambda val: float('{:.10f}'.format(val).rstrip('0').rstrip('.')))
2. 十进制数值无舍入转整数
无舍入转换默认直接截断小数部分,可根据你的使用场景选择对应方案:
- 直接截断转换:适用于数值本身大于1,需要保留整数部分的场景
df1['整数列'] = df1['DZ_middle_G_L1_20km'].apply(lambda x: int(x))
- 放大后转换:如果需要保留所有小数位的有效数字,可先乘以对应10的幂次再转换,示例数值放大10^7倍即可覆盖所有有效位
df1['整数列'] = df1['DZ_middle_G_L1_20km'].apply(lambda x: int(x * 10**7))
内容的提问来源于stack exchange,提问作者Kim Yejun
相关产品推荐
相关产品推荐

