如何在Python Pandas中将列表中的Decimal值转换为float?
用Pandas将嵌套列表中的Decimal类型转换为float类型
实现步骤
- 导入所需模块
- 将嵌套列表转换为Pandas DataFrame
- 逐元素检查并转换Decimal类型为float
- 将处理后的DataFrame转回嵌套列表
完整代码示例
from decimal import Decimal import pandas as pd # 原始嵌套列表 my_list = [[Decimal('0.303440'), 0.0, 2.0, 8.0, 1.0], [109.0, 10.0, 0.0, 0.0, 3.0], [52.0, 5.0, 99.0, 0.0, Decimal('0.445378')]] # 转换为DataFrame df = pd.DataFrame(my_list) # 定义转换函数:Decimal转float,其他类型保持不变 def decimal_to_float(x): return float(x) if isinstance(x, Decimal) else x # 逐元素应用转换函数 df_converted = df.applymap(decimal_to_float) # 将DataFrame转回嵌套列表 converted_list = df_converted.values.tolist() # 输出结果 print(converted_list)
简化写法
可以用lambda表达式替代单独定义函数,让代码更紧凑:
df_converted = df.applymap(lambda x: float(x) if isinstance(x, Decimal) else x)
执行后得到的converted_list就是所有Decimal类型已转换为float的目标嵌套列表。
内容的提问来源于stack exchange,提问作者dingaro
相关产品推荐
相关产品推荐

