从数据框生成的列表中替换“十进制”

时间:2018-07-05 08:29:50

标签: python pandas dataframe

input_list是从pandas数据帧生成的。我希望立即替换熊猫数据框中的所有此类条目。

input_list = {'borrower_master_id': 1000, 'attribute_derived_master_id': 100, 'year_id': 2018, 'quarter_id': 1.0, 'month_id': None, 'param1_value': Decimal('3.00'), 'param2_value': Decimal('223.00'), 'param3_value': None, 'param4_value': None, 'param5_value': None, 'formula_expression': 'param1+param2', 'attrib_type': 'Actual', 'derived_attrib_value': 226.0, 'is_active': True}

expected_list = {'borrower_master_id': 1000, 'attribute_derived_master_id': 100, 'year_id': 2018, 'quarter_id': 1.0, 'month_id': None, 'param1_value': 3.0, 'param2_value': 223 'param3_value': None, 'param4_value': None, 'param5_value': None, 'formula_expression': 'param1+param2', 'attrib_type': 'Actual', 'derived_attrib_value': 226.0, 'is_active': True}

1 个答案:

答案 0 :(得分:1)

您可以对数据类型使用字典理解条件:

input_list = {k:(float(v) if isinstance(v, Decimal) else v) for k,v in input_list.items()}

input_list
>>>
{'borrower_master_id': 1000,
 'attribute_derived_master_id': 100,
 'year_id': 2018,
 'quarter_id': 1.0,
 'month_id': None,
 'param1_value': 3.0,
 'param2_value': 223.0,
 'param3_value': None,
 'param4_value': None,
 'param5_value': None,
 'formula_expression': 'param1+param2',
 'attrib_type': 'Actual',
 'derived_attrib_value': 226.0,
 'is_active': True}