python – 使用另一个数据帧替换数据帧中的零值
发布时间:2020-12-20 11:45:29 所属栏目:Python 来源:网络整理
导读:我想替换foll中的一些值.数据帧: dataframe_a Y2000 Y2001 Y2002 Y2003 Y2004 Item Item Code34 43 0 0 25 Test Val 我想用一个数字值替换列中的值,该数值是通过将标量(比如0.5)乘以此数据帧中的所有值得出的: dataframe_b Y2000 Y2001 Y2002 Y2003 Y2004
我想替换foll中的一些值.数据帧:
dataframe_a Y2000 Y2001 Y2002 Y2003 Y2004 Item Item Code 34 43 0 0 25 Test Val 我想用一个数字值替换列中的值,该数值是通过将标量(比如0.5)乘以此数据帧中的所有值得出的: dataframe_b Y2000 Y2001 Y2002 Y2003 Y2004 Item Item Code 34 43 10 20 25 Test Val 因此,在dataframe_a中,列Y2002的值应为10 * 0.5,列Y2003的值应为20 * 0.5 目前,我这样做: df = dataframe_a[dataframe_a == 0] df = df * dataframe_b * 0.5 但是,不确定如何使用新值更新dataframe_a 解决方法
您可以使用布尔掩码然后调用fillna:
In [58]: fill = df2.select_dtypes(include = [np.number]) * 0.5 df1 = df1[df1!=0].fillna(fill) df1 Out[58]: Y2000 Y2001 Y2002 Y2003 Y2004 Item Item Code 0 34 43 5 10 25 Test Val 这里df1 [df1!= 0]将产生一个相同形状的df,其中NaN值不满足条件,然后你可以调用fillna并传递另一个df,它将替换索引和列对齐的NaN值. 布尔掩码的结果: In [63]: df1[df1!=0] Out[63]: Y2000 Y2001 Y2002 Y2003 Y2004 Item Item Code 0 34 43 NaN NaN 25 Test Val (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |