深圳专业制作网站公司吗,设计师服务平台素材下载,卓商网站建设,乌镇镇住房建设局网站1. 背景
目前dataframe中的数据如下#xff0c;power字段表示功率值#xff0c;第一个值为20.0#xff0c;第二个值为None。需要计算电量值#xff0c;电量 功率 * 0.25#xff0c;并保存到energy字段中#xff0c;如果功率值为None#xff0c;则电量值也为None。 pow…1. 背景
目前dataframe中的数据如下power字段表示功率值第一个值为20.0第二个值为None。需要计算电量值电量 功率 * 0.25并保存到energy字段中如果功率值为None则电量值也为None。 power
0 20.0
1 Nonedf pd.DataFrame(data{power: [20, None]})df[energy] df.apply(lambda col: Decimal(col[power]) * Decimal(0.25)if col[power] is not None else None, axis1)
print(df)结果如下 power energy
0 20.0 5.00
1 NaN NaN发现原本的None值被自动转成了NaN
2. 解决
Pandas会自动将Python中的None值转换为NaNNot a Number的缩写值。NaN是Pandas中表示缺失数据的一种特殊值。这种自动转换是因为None通常用于表示缺失或空数据而NaN是Pandas用于处理缺失数据的标准方式。
如果不希望Pandas自动将None转换为NaN您可以在创建Series或DataFrame对象时明确指定dtype数据类型将其设置为适当的数据类型以便None可以保持原样。
如下
df pd.DataFrame(data{power: [20, None]}, dtypeobject)df[energy] df.apply(lambda col: Decimal(col[power]) * Decimal(0.25)if col[power] is not None else None,axis1)
print(df)结果如下 power energy
0 20 5.00
1 None None